2011-08-28 30 views
-1

我堅持的東西很明顯,我不能讓工作:正則表達式可選組不完整的搜索

有類似的文字:「.... blah-blah-blah... Grupper blah-blah-blah Butik ...」。 Grupper是一個可選標記 - 可以在文本和Butik中省略 - 是強制性的。所以它應該匹配Grupper如果有一個和Butik總是。

(Grupper)?[\s\S]*?(Butik)表達式從來沒有捕獲Grupper,但沒有?工作正常(當然,當原始文本中沒有'Grupper'時完全失敗)。

我該如何讓它起作用?

回答

0

(Grupper)?匹配Grupper如果它出現0或1次。所以它匹配一些東西,即使Grupper不是它的一部分。

如果您的字符串以Grupper開頭,反向引用(Grupper)將包含它(默認情況下正則表達式爲貪婪),並且如果字符串不以Grupper開頭,反向引用將爲空。

在你的地方,我會用2種不同的正則表達式捕捉Butik和Grupper。

+1

'Grupper?'匹配'Grupper'或'Gruppe'。 – svick

+0

svick:謝謝,修正 –

+0

嗯,謝謝,單獨的正則表達式工作正常。 – Dada