2014-07-10 2 views
0

미리보기 . * (? = foo | bar)을 찾고 있는데 아래 단어 중 하나가 있으면 찾습니다. OR 조건을 사용하지만 첫 번째 일치에서 중지하지 않는 경우에도 다른 조건도 일치합니다.문자열에 두 단어가 모두있는 경우 정규 표현식 조건이 모두 일치합니다.

아래 내용은 구문 분석하려는 내용입니다. 콘텐츠에는 2 가지 형식이 있습니다. 하나는 foo AND 막대 모두를, 다른 하나는 foo OR 막대 만 사용합니다. fist 경우에는 foo 자체에서 멈춰야합니다.

Testing 1.0 

---------------------------------------- 

     foo:    1.0 

    Some Text   

bar:  1.5 

---------------------------------------- 

다른 형식

Testing 1.0 

---------------------------------------- 


bar:  1.5 

---------------------------------------- 
+0

어디 * 코드 *인가? – TheLostMind

+0

가 굵은 글씨로 강조 표시되었습니다. * (? = foo | bar) – javauser

답변

2

게으른 한정 기호는

은 그것을 게으른 일치합니다

.*?(?=foo|bar) 

* 정량은 욕심이 될 수 있도록 끝까지 .* 경기 th 전자 문자열. 그러면 엔진은 미리보기 헤드가 일치하도록 필요한만큼 뒤로 돌아옵니다. 가장 길게 일치하는이 표시됩니다. 반면

?* 한정사하게까지만로 우리에게 짧은 경기을 필요주는 일치 .*? 있도록, "게으른"또는 "꺼려".

참조

+0

사실, 미리보기가 실제로 필요하지 않습니다. –

+0

@RohitJain 그가'foo'까지는 일치 시키길 원한다면 lookahead가 필요합니다. 그러나'foo'를 매치에 포함시키지 마십시오. – zx81

+0

FYI : 설명 및 참조를 추가했습니다. :) – zx81