2009-12-31 34 views
0

使用正則表達式。匹配任何不以字母a,b,c中的任何字符結束的單詞的模式?

我有這樣的發現,以這些字母結尾的話:

\S+[abc]\b 

但我需要所有的在任何位置有這幾個字母,但不到底的話。

+0

從答案我可以看到有一些模糊性你的短語「在[任何位置上] [a,b,c]的詞語」。你能舉出一些應該匹配的詞語,並且不能匹配清除歧義詞嗎? – 2009-12-31 16:00:14

回答

6

^字符爲(在一個字符組使用時)的正則表達式,以便一個輕微修改您正則表達式將產生: \S+[^abc]\b:馬赫一個或多個非空格字符,然後任意字符除了a,b或ç其位於字邊界

+0

這條語句需要少量補充(添加的部分用粗體表示):「^字符是_not_的正則表達式(當使用**作爲字符組中的第一個字符時)」。 '[^ a]'和'[a ^]'有不同的含義。你可能已經知道了,對嗎? ;-) – Geert 2010-01-01 06:41:54

3

如果[abc]必須在字(除了年底)在某個地方,你需要這樣的:

\S*[abc]\S*[^abc]\b 

如果[abc]不需要在任何地方,Alon「SS olution足夠:

\S+[^abc]\b 
0

一個^來表示NOT A,B或C應該工作:

\ S + [^ ABC] \ b

+0

如果不是'\ b'處理那個(字邊界),'$'將會是輸入的結尾 - 你的字符不會匹配字符串中間的字。 – Wim 2009-12-31 16:00:09

+0

你假設'結束'意味着行結束($),而不是'結尾'(\ b),如OP所述。 – 2009-12-31 16:00:13

+0

Thx,只要我點擊提交出來:( – Anne 2009-12-31 16:00:33

相關問題