2015-01-19 2 views
-2

내가이 \[(.*)\]실패는 [(. *) ] 정규식 의에서 그룹을 캡처

내가 \[ 안에 아무것도 캡처 할 그 이후

\] 하지만 결과 리턴과 같은 정규식을 작성했습니다

예를 실패합니다 :
정규식 \[(.*)\]
문자열 테스트 : \[\sqrt 3\]
기대 : \sqrt 3

+1

어떤 언어에 정규식을 사용하십니까? – J0e3gan

+0

@ j0e3gan : 자바와 함께이 정규 표현식을 사용합니다 String regex = "\\\ [(. *) \ \ \]"; 문자열 s = "\\ [\ sqrt 3 \\]"; 패턴 p = Pattern.compile (정규식); s = s.replaceAll (regex, "$ 1"); System.out.println (s); – DXT

+1

컴파일되지 않습니다 : * 오류 : 불법 탈출 문자 * – J0e3gan

답변

0

캡쳐 그룹 내에 .*을 만들어 욕심이없는 일치를 만들어야합니다. regex에서는 문자 \을 일치 시키려면 백 슬래시를 3 번 ​​이상 inorder로 이스케이프 처리해야합니다.

String s = "\\[\\sqrt 3\\]"; 
System.out.println(s); 
Matcher m = Pattern.compile("\\\\\\[(.*?)\\\\\\]").matcher(s); 
while(m.find()) 
{ 
    System.out.println(m.group(1)); 
} 

출력 :

\[\sqrt 3\] 
\sqrt 3 
+0

avinash Raj – DXT

+0

시도해 주셔서 감사합니다 ......... –