2013-01-13 3 views
0

다양한 텍스트 세그먼트가 포함 된 거대한 문자열이 있습니다. 이 문자열을 통과하는 부분에는 두 개의 등호 '=='이 있습니다.Regex, PHP에서 일치하는 항목 ( r | n |.) *

동등한 기호가있는 경우 '{{Description'과 일치시키고 싶습니다. 내가 계획했던

방법은이 '/==(\r|\n|.)*\{\{Description/i'

했다 그러나 정규식을 실행할 때이 세그먼트 폴트가 발생합니다.

그밖에 내가 (\r|\n|.)*없이 위와 일치하는 정규식을 만들 수 있습니까?

+0

의 마지막 모습을 찾을 것이다 그것은'그래서'{{'이스케이프 할 필요가 \ {\ {' –

+0

죄송합니다, 예 내 코드에서 이스케이프 처리되지만 코드 태그를 추가하지 않으므로 백 슬래시가 표시되지 않습니다. –

+0

Segfaulting은 실행시 중괄호가있는 것처럼 보입니다. 나는 당신이 [원자 집단 (atomic grouping)] (http://www.regular-expressions.info/atomic.html)을 조사하여 그것이 당신의 쟁점을 해결하는지 알아볼 것을 제안한다. – hakre

답변

6

s 수정자를 추가하면 그냥 .*이 작동합니다. 또한 {은 특수한 의미를 지니 며 (숫자 한정 기호가 도입 됨) 이스케이프해야합니다. 마지막으로, * 아마 게으른해야한다, 그렇지 않으면 시작하려면 {{Description

/==.*?\{\{Description/is 
관련 문제