2016-07-23 284 views
2

我有以下的正則表達式:正則表達式排除括號

[^a-zA-Z0-9](est)[^a-zA-Z0-9] 

測試字符串:

this is a test [est+where] esterius 

它應該只突出了第一個 「EST」。可悲的是括號[和+符號也匹配。但我只想要我的話,「EST」進行匹配,如果字符之前和之後的非字母而不是數字

+2

你不需要看看,只需訪問捕獲組('match.Groups [1] .Value') –

+1

我同意@WiktorStribiżew你根本不需要周圍的環境。您的捕獲組已經完全包含您需要的內容。我真的認爲下面接受的答案是矯枉過正的。更不用說,在所有正則表達式中都不支持這種外觀,所以如果你需要移植到JavaScript,下面的內容不起作用。 – Jeroen

回答

2

你應該使用向前看符號和lookbehinds的:

(?<=[^a-zA-Z0-9])est(?=[^a-zA-Z0-9]) 

未經基本上匹配的東西包括在最後的比賽中。

+0

哇,這個伎倆,非常感謝! –

+0

謝謝我也不知道 –