2016-09-18 2 views
1

정규식을 사용하여 Java의 문자열에서 일치하는 항목을 찾으려고했습니다. 실제 정규식 내가 지금이 지수 13에 가까운 불법/지원되지 않는 이스케이프 시퀀스 내가 보드를 조금 검색과 발견을 던졌습니다 그것은 내가정규식을 사용하여 Java에서 다중 행 문자열을 찾으십시오.

^(interface \\X*!) 

을 사용하는 Java 수행 할 때

^(interface \X*!) 

입니다 실제로해야 작동시키기 위해 네 개의 백 슬래시가 있어야합니다. 하지만 사용하는 경우

^(interface \\\\X*!) 

일치하는 항목을 반환하지 않습니다. 모든 포인터가 정말 도움이 될 것입니다. 자바를 사용하여 당신이 코멘트에 식별 패턴과 일치하기 위해

interface ABC 
temp 
abc 
xyz 
! 
+0

일치해야하는 것에 대한 예제 또는 설명을 제공 할 수 있습니까? "인터페이스 X"또는 "인터페이스 \ X"와 같은 문자열을 일치 시키려고합니까? 이 코드를 사용하여 – mangotang

+0

, 나는 일치를 얻을, 나는 예외하지 않습니다 : "인터페이스 \\ X" '공용 클래스 XXXX { 공공 정적 무효 메인 (문자열 []에 args) { 문자열의 =을 ; 부울 b = s.matches ("^ (인터페이스 \\ X *!)"); System.out.println (b); 인터페이스 ABC 온도 ABC XYZ : } 은}' – mangotang

+0

은 샘플 같은 것을 할 것 @mangotang! –

답변

1

처럼

그냥 샘플 일치하는 것,이 같은 작업을해야합니다 :

Pattern p = Pattern.compile("interface[^!]*!", Pattern.DOTALL); 
    Matcher m = p.matcher("interface ABC\ntemp\nabc\nxyz\n!"); // your test string 
    if (m.matches()) { 
     // 
    } 

이 패턴은 어떤 일치 "interface"로 시작하는 문자열, "!"다음에 "!"를 제외한 0 이상의 문자가 뒤 따르는 문자열.

Pattern.DOTALL은 다른 모든 문자 외에도 "." 또한 캐리지 리턴 및 줄 바꿈과 일치해야합니다. DOTALL에 대한 자세한 내용은 this을 참조하십시오.

+0

굉장! 훌륭한! 정규 표현식을 가져 주셔서 감사합니다! 그것은 작동합니다. –

관련 문제