2013-03-07 7 views
-2

내가 같은 TEXTFILE이 태그로 분할합니다. 나는 다음과 같은 정규 표현식을 시도 :정규식은

Regex regex = new Regex(@"<page>.*?<endpage>"); 
MatchCollection matchCollection = regex.Matches(text); 

그러나 이것은 단지 작품을 <page><endpage> 사이에 LINEBREAK이 존재하지 않는 경우. 내 문제를 해결하기위한 올바른 정규 표현식은 무엇입니까?

+1

@stackoverflow.com/a/1732454/496680 –

+2

@Steve - 여기서는 실제로 적용되지 않습니다. – Oded

+2

@CuongLe - 왜 이것이 XML이라고 생각합니까? – Oded

답변

5

당신이 RegexOptions.Singleline 옵션을 활성화해야 .* 여러 라인을 일치시킬 수하려면

기본적으로
Regex regex = new Regex(@"<page>.*?<endpage>", RegexOptions.Singleline); 
+0

고맙습니다. 그것은 완벽하게 작동합니다 : 나는 11 분 안에 대답을 받아들입니다 .-- – Tomtom

1

, .가 개행 문자와 일치하지 않습니다. 즉, 동일한 행에 모든 것이 발생하는 경우에만 패턴이 일치합니다.

여러 줄에 걸쳐 일치 시키려면 RegexOptions.Singleline이 필요합니다. 이름은 약간 혼란 스럽지만 아이디어는 통과하지 않고 정규식을 테스트하는 대신 전체 문자열을 "단일 줄"로 처리합니다. 각 줄에).