2012-10-14 2 views
6

<tag></tag> 태그 쌍 사이의 모든 값의 내용을 가져오고 싶습니다. 정규 표현식을 사용하여 여러 그룹과 일치하는 지연 (ungreedy)

<tag> 
This is one block of text 
</tag> 

<tag> 
This is another one 
</tag> 

내가 함께 올라와있다 정규식

는 욕심 것으로 보인다 최대 </tag> 매우 마지막까지 동봉 괄호 안의 모든 것을 캡처, 비록

/<tag>(.*)</tag>/m

입니다. 가능한 한 게으르며 닫는 태그를 볼 때마다 매치 그룹으로 간주하고 다시 시작합니다.

주어진 시나리오에서 여러 개의 일치 항목을 얻을 수 있도록 정규식을 작성하려면 어떻게해야합니까?

은 내가 다음 링크에서

http://rubular.com/r/JW5M3rnqIE

주를 기술하고있는 무슨의 샘플을 포함했다 : 이것은 XML도 아니고 정말 기존의 표준 형식을 기반으로합니다. 멋진 파서와 함께 제공되는 본격적인 라이브러리처럼 정교한 것은 필요하지 않습니다. 정규식 패턴

+1

하나 개 더 중요한 것은이된다 (http://stackoverflow.com/questions :

는 여러 번 사용을 찾으려면/1732348). 나중에, 당신에게 경고하지 않았다고 말하지 마라. –

+0

@BorisStitnicky, 여기서화물 숭배는 필요 없습니다. Regexes는 재귀 적이 아닙니다. – nalply

+2

... 정규 표현식으로 HTML을 구문 분석하려고 할 때마다 신성하지 않은 아이가 처녀의 피를 울 렸습니다. 러시아 해커가 웹 앱을 퍼트 렸습니다 ... 재규어 분석 파싱의 노래가 mor의 목소리를 추측합니다. 여기에서 sp에서 탈 니아 남자 나는 그것이 볼 수 있습니다 볼 수 있습니다. 그것은 아름 답습니다. 그는 남자의 거짓말의 마지막 snuffing. 모두 잃어버린 다. 나는 잃어버린 다 –

답변

11

이동합니다 (비 욕심)

/<tag>(.*?)<\/tag>/im 

게으른 .*?하지 .*입니다. XML에 regexen 사용하여, [당신이 Ctulthu 함께 연주]

당신이 알 수있는
string.scan(/<tag>(.*?)<\/tag>/im) 
+0

http : // www. regular-expressions.info/ruby.html –

+0

고마워요! 루비가 정규 표현식에 사용했던 것들을 시도하지 않았다고 생각합니다. – MxyL

+0

@ 한국 - 당신은 환영합니다. 행운을 빕니다! –

관련 문제