2011-09-09 5 views
14

나는이 텍스트가 나는정규식은 어떻게 두 개의 문자열

begin 
text 
end 

begin 
text 
end 

begin 
text 
end 

지정된 시작과 끝 사이에있는 텍스트를 캡처 할 사이에 텍스트를 찾을 수 있습니다.

/begin.*end/ 

이것은 첫 번째 시작과 마지막 끝을 캡처합니다.

답변

12

이 게으른하지 말라 - /begin.*?end/

(!) 참고 : "게으른"덜 허용보다 "비 욕심"입니다. Example, example, example

+7

용어는 "비 욕심" – Bohemian

4

텍스트가 라인 (\n 또는 \r) 당신은 당신의 정규식에 플래그를 "DOTALL",뿐만 아니라 경기을 추가해야합니다 피드가 포함 된 경우 꺼려 (즉, "비 욕심")

당신의 정규식 맛에 따라 :

/begin.*?end/s 
(?s)begin.*?end 
+0

JS 버전) ("게으른"없습니다; '/ begin. * end/s' [regex101에서 작동하지 않습니다.] (https://regex101.com/r/HzsPk7/1) [python version] (https://regex101.com/r/zsq4IQ)/1). 나는 부엉이 모양의 '\ s'을 시도했지만 일치하지 않습니다. – Mikel

+0

@ 물론 당연히'/ begin. *? end/s'는 정규식의 일부가 아니기 때문에 regex 101에서 작동하지 않습니다. 그것들은 js의 구분자이지만 사람들은 js 관련 정규식 응답에 그것들을 자주 포함합니다 (즉, 따옴표 대신 슬래시를 사용하고 슬래시로 구분 된 정규식 뒤에 플래그를 붙이기 때문에). ''(? s) begin. *? end "'(사람들이 때로는 그렇게 함)와 같이 응답에 따옴표가있는 nonjs 버전을 코딩하는 것과 유사합니다. – Bohemian

+0

['[begin [\ s \ S] *? end'] (https://regex101.com/r/5wLcgR/2)로 할 수있었습니다. – Mikel