2014-11-01 1 views
0

여기 내 정규식입니다 :이 같은 문자열을 일치하기 위해 노력하고있어는 왜 정규식 공간과 일치하지 않습니다

\b((?:Text|Header|Content))\=\"([^{].+?)\" 

:

텍스트 = "내 텍스트"너비 = "50"

이 제대로 작동

는 - 내가 얻을 :

캡처 그룹 1 : 테 XT 캡처 그룹 2 :

텍스트 = ""너비 = "50"

나는 다음과 같은 결과를 얻을 :

에게 내 문자

그러나이 텍스트를 발견 한 경우

캡처 그룹 1 : 텍스트 캡처 그룹 2 : "너비 =

정규 표현식에서 내가 뭘 잘못하고 있니?

편집 : 내 정규식에 추가 합병증이있다 - 나는 일치하는 텍스트 행을 제외한 해요 :

텍스트 =

답변

1

은 정규 표현식의이 부분은 당신의 속성 값을 (일치 "{테스트를 바인딩}") 따옴표 :

([^{].+?) 

이 하나 개 이상의 문자 다음에 { 이외의 문자로 해석됩니다. 따라서 정규 표현식의 특성 값은 이 2 개이고 문자가 있어야 하나의 문자 공간에서 오류가 발생합니다 (Text=" ").

이 문제를 해결하려면, 당신은 대신에 0 개 이상의 문자와 일치하도록 정량을 변경할 수 있습니다

([^{].*?) 
+0

우수 - 감사합니다 :) –

관련 문제