2017-02-01 2 views
0

У меня есть следующая строка (содержит португальские символы) в следующей структуре: содержат Name:, а затем несколько слов после.Как извлечь строку до конца строки с регулярным выражением

Пример:

String myStr1 = "aaad Name: bla and more blá\n gdgdf ppp"; 
String myStr2 = "bbbb Name: Á different blÁblÁ\n hhhh fjjj"; 

Мне нужно извлечь строку из 'Name:' до конца строки. пример:

extract(myStr1) = "Name: bla and more blá" 
extract(myStr2) = "Name: Á different blÁblÁ" 

Редактировать после @blue_note ответа:

вот что я пробовал:

public static String extract(String myStr) { 
    Pattern p = compile("Name:(?m)^.*$"); 
    Matcher m = p.matcher(myStr); 

    while (m.find()) { 
     String theGroup = m.group(0); 
     System.out.format("'%s'\n", theGroup); 
     return m.group(0); 
    } 
    return null; 
} 

не работает.

ответ

4

Регулярное выражение является "^\\w*\\s*((?m)Name.*$)") где

  • ?m включает режим многострочного
  • ^, $ обозначают начало строки и конец строки соответственно
  • .* означает любой символ, любое количество раз

И получите group(1), а не group(0) согласованного выражения

+0

пожалуйста, вы можете помочь мне завершить мой код? – dina

+0

отредактировал ответ –

1

Вы можете также использовать подстроку в этом случае:

String name = myStr1.substring(myStr1.indexOf("Name:"), myStr1.indexOf("\n")); 
+0

благодаря этим работам, но я пытаюсь сделать это с помощью регулярного выражения – dina

Смежные вопросы