2017-01-05 4 views
0

자바 파일의 두 중괄호 사이에있는 텍스트를 선택하는 정규 표현식을 작성하려고합니다. 중괄호 사이의 텍스트는 여러 줄에 걸쳐 표시 될 수 있습니다.여러 줄에 걸쳐 텍스트를 선택하는 정규식

예.,

{ 
    // line1 ; 
    // line 2 ; 
    // line 3 ; 
} 

나는 중괄호 사이에있는 모든 행을 선택해야합니다.

시도했지만 \{[.]*\} 여러 줄을 선택하지 않았습니다.

이 점에 대해 제안 해주십시오. 감사합니다. .

+0

이 시도 할 수 있습니다'{[^}] *}' –

답변

1

당신은 정규 표현식에서 줄 바꿈을 추가 할 필요가 ... 이것보십시오 : 당신이 필요로 , 이것은 좋은 생각이 {(. * \ 연구 \ 없음) * \} 일반적으로

+0

간단히 : 아니요. 또한 대부분의 정규 표현식에서 대괄호를 이스케이프 처리해야하며, 한 줄만 사용할 수 있습니다 ('DOTALL'이 지정되지 않은 경우). – Jan

+0

예, 대괄호를 이스케이프 처리해야합니다. 이스케이프 문자를 넣었지만 제거 된 것 같습니다. 나는 그것을 편집했다. 이스케이프 문자를 인쇄하려면 다른 이스케이프 문자를 사용해야했습니다. –

+0

또한 중괄호 사이에 여러 줄이 있어도 작동합니다. 그에 따라 캐리지 리턴 (\ r)을 제거해야 할 수 있습니다. –

2

하지 않습니다 \ 중첩 된 대괄호 등을 고려하십시오. 대신 파서를 사용하는 것이 좋습니다.
이 말했다되고 , 당신은 다음과 같은 구조와 함께 얻을 수 있습니다 :

^\{ 
(.+?) 
^\} 

이 가정, 당신의 개폐 브래킷은 한 줄에 혼자 서있다. 당신은뿐만 아니라 공백을 허용하려면, 당신은 그것을 변경해야합니다 :

^\s*\{ 
(.+?) 
^\s*\} 

a demo on regex101.com을 참조하십시오 (및 다른 수정, 즉 DOTALLMULTILINE 마음!).

+0

아쉽게도 Atom, Eclipse, Vim 중 하나에서이 특정 정규식을 확인할 수 없습니다. (regex101.com에서만 작동합니다. 많은 편집자가 표현 플래그를 지원하지 않거나 부분적으로 지원합니다. – Omkar

관련 문제