2014-11-01 78 views
0

這裏是我的正則表達式:爲什麼我的正則表達式不匹配空間

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

我想匹配這樣的字符串:

文字= 「我的文本」 WIDTH = 「50」

這是工作的罰款 - 我得到:

捕獲組1:特XT捕捉組2:我的文本

但是,當遇到這樣的文字:

文本=」 「WIDTH =」 50"

我得到以下結果:

捕獲組1:文本捕獲組2:「寬度=

我在做什麼錯我的正則表達式?

編輯:有一個在我的正則表達式的更加複雜 - 我不包括匹配的文本行:

文本=「{結合試驗}」

回答

1

您正則表達式的這部分你的屬性值(匹配引號內):

([^{].+?) 

這被解釋爲比其它{任何字符,接着是一個或多個字符。因此,您的正則表達式要求您的屬性值至少包含兩個字符,導致其在Text=" "中的單字符空間失敗。

要解決這個問題,你可以改變你的量詞來匹配零個或多個字符,而不是:

([^{].*?) 
+0

優秀 - 感謝:) – 2014-11-01 22:38:44

相關問題