2016-08-11 27 views
1

我有以下段落:驗證只有大寫單詞,忽略如果一個單詞以小寫繼續使用正則表達式

AUTOCAD is the best CAd program and it wins an AWARD for this.

我想用僅僅捕捉AUTOCADAWARD正則表達式,而忽略CAd,因爲它包含小寫。

我寫了一個regex喜歡:

\b[A-Z0-9]+(?![a-z]+) 

,但它也需要CCAd ...但我不希望它!

如何提高我的正則表達式?

+2

您可以像最初一樣使用\ b。 –

+0

這個技巧。謝謝 :) –

回答

2

的一點是,\b[A-Z0-9]+(?![a-z]+)模式匹配C然後測試在CAdA,但由於A是小寫字母d前權,(?![a-z]+)先行使得發動機原路返回,退一步測試C再次檢查它是沒有跟着一個小寫字母。因此,比賽是C

enter image description here

爲了使正則表達式在這種情況下失敗,你需要或者使用所有格量詞0​​(或等值原子團(?>[A-Z0-9]+))禁止回溯到[A-Z0-9]+ - \b[A-Z0-9]++(?![a-z]+) - 或trailing \bMaria suggests

相關問題