2012-01-18 3 views
-1

나는이 텍스트에서 별의 마지막 줄을 얻기위한 패턴을 시도하고있다.전후의 텍스트를 제외하고 텍스트의 한 줄을 어떻게 일치시킬 수 있습니까?

함께 제공된 패턴은 매우 간단합니다. 그것은 시작

의 처음과 마지막 줄 (* {5,})

그러나, 나는 단지 마지막 줄 필요 일치합니다.

일부 텍스트가 여기

************************************ 

    *         * 





    *         * 


    * Source: Test      * 


    *         * 


    * Amount: $6.50     * 


    *         * 


    ************************************ 
+0

이 모든 것이 단일 문자열입니까? –

+0

예, 모두 한 텍스트에 있습니다. 별의 첫 번째 줄 앞에 텍스트가 있지만 별의 마지막 줄 뒤에 아무 것도 없습니다. – Leger

답변

0

당신은 \z와 문자열의 끝을 정의 할 수 있습니다 다음은 텍스트입니다.

"\\*{5,}\\z" 

건배 :

그래서 루비 형식으로,이 트릭을 할 것입니다!

나를 위해 작동

, 나는 여기에서 그것을 테스트했습니다

import java.util.regex.Matcher; 
import java.util.regex.Pattern; 

class Untitled { 
    public static void main(String[] args) { 
     String test = " ************************************\n" + 
      "*         *\n" + 
      "*         *\n" + 
      "* Source: Test      *\n" + 
      "*         *\n" + 
      "* Amount: $6.50     *\n" + 
      "*         *\n" + 
      "************************************"; 

     Pattern pattern = Pattern.compile("\\*{5,}\\z"); 
     // In case you would like to ignore case sensitivity you could use this 
     // statement 
     // Pattern pattern = Pattern.compile("\\s+", Pattern.CASE_INSENSITIVE); 
     Matcher matcher = pattern.matcher(test); 
     // Check all occurance 
     while (matcher.find()) { 
      System.out.print("Start index: " + matcher.start()); 
      System.out.print(" End index: " + matcher.end() + " "); 
      System.out.println(matcher.group()); 
     } 
    } 
} 

출력 : 260 최종 인덱스 : 인덱스 시작 296 * * http://www.regexplanet.com/simple/index.html

OK, 정말 작동합니까 * * ** * ** * ** * ** * ****

+0

이것은 나를 위해 작동하지 않습니다 – Leger

+0

내 대답을 편집했습니다. –

+0

나는 당신이 테스트를 위해 사용하는 자바와 동일한 링크를 사용하고있다. 작동하지 않습니다 – Leger

0

문자열 끝과 일치하는 패턴 '\*{5,}$'을 사용하십시오. 하지만 백 슬래시를 두 번 이스케이프 처리해야하므로 \\*{5,}$입니다.

Pattern.compile("\\*{5,}$") 
+0

이것은 여전히 ​​첫 번째와 마지막 줄의 별을 반환합니다.그러나 나는 단지 별의 마지막 줄만 필요합니다. – Leger

+0

'$'는 * MULTILINE 수정자를 먹이지 않는 한 * string * (줄의 끝이 아님)의 끝과 일치한다고 생각합니다. –

+0

테스트 할 때 다중 플래그 태그를 설정했습니다. – Leger

관련 문제