2016-06-07 130 views
1

我正在尋找與特定模式相匹配的話,其一個正則表達式(見下文),但其不包含的三個特定詞語字符串模式匹配的和不包含某些字

一個

的圖案是

[a-zA-Z0-9_~+-]{1,64} 

,我不希望被包含在整個單詞的詞是「測試」,「SPECIFIC1」和「SPECIFIC2」

到目前爲止,我發現了一個正則表達式不匹配的那些話:

((?!(TEST|SPECIFIC1|SPECIFIC2)).)* 

但我找不到如何結合這兩個正則表達式。

例如:

TEST   won't match 
TES$   won't match 
SPECIFIC1  won't match 
NON-SPECIFIC2 won't match 
SPECIFIC2  won't match 
MATCHES   will match 
test   will match 

是否有人有想法?

+0

匹配你想要的任何東西比較容易,然後寫出一個條件。 – Maroun

+0

不幸的是,我必須只有一個正則表達式來完成這項工作 –

+0

這就是代碼。它需要一個正則表達式 –

回答

2

如果用^$包圍表達式,則可以將負向視角與角色類一起放置以實現此目的。

^((?!(TEST|SPECIFIC1|SPECIFIC2))[a-zA-Z0-9_~+-]){1,64}$ 

Here's一個示範。請注意,這將使用全局標誌和多行標誌,因此我可以爲每個行進行一次匹配演示。

如果沒有^$該模式可以被移動以避免匹配被禁止的字符串。

+1

謝謝,但是這個正則表達式將與單詞中的「TEST」相匹配,因爲testTESTtest –

+0

更新了正則表達式和鏈接,使其與* testTESTtest *不匹配。 – Raniz

+0

它正在工作!非常感謝你 –