2013-10-12 2 views
0

초기 문자열정규식에서 n을 사용하는 방법은 무엇입니까?

System.out.println(myString) 

내가 두 번째 이름, 즉 마샤

  Pattern pattern = Pattern.compile("(?:Name:.*?){2}\\n"); 
      Matcher matcher = pattern.matcher(myString); 
      String secondName = ""; 
      while (matcher.find()) { 
      secondName = matcher.group(); 
       } 
      System.out.println(secondName); // prints nothing ??? 

답변

3

사용 Pattern.DOTALL.를 만들기 위해 깃발을 캡처하려고이

Name: Sacha 
Last name: Sidor 
............. 
Name: Masha 
........ 

모양입니다 개행 문자를 포함한 모든 문자와 일치합니다. DOTALL 플래그가 없으면 .은 개행과 일치하지 않습니다.

Pattern pattern = Pattern.compile("(?:Name:.*?)(?:Name:)([^\\n]+)", Pattern.DOTALL); 
Matcher matcher = pattern.matcher(myString); 
String secondName = ""; 
if (matcher.find()) 
    secondName = matcher.group(1); 
System.out.println(secondName); 
관련 문제