2013-05-15 89 views
0

我試圖匹配包含某些字符但不包含其他字符的字符串。問題是,如果字符串包含允許的字符,表達式會找到一個匹配,即使它包含無效的字符(沒有什麼不尋常的,但不是我想要的)。
我正在使用的表達式看起來像這樣([^abc][def])+
所以問題是:我可以定義一組字符,如果包含在字符串中,將停止匹配字符串的表達式?如果文本包含某些字符,正則表達式不匹配

+0

你正在使用哪種正則表達式? – Jerry

+0

字符串是由什麼組成的?只有信件?任何字符? – Patashu

+0

字符,除了一些字母。 – undefined

回答

2

您必須錨定您的表達式,以確保字符串中沒有其他字符。例如:

^[chars]+\z 

或者你可以簡單地反轉字符類,你會得到一個匹配,如果無效字符存在:

[^chars] 

如果你想這樣的檢查與其他表達式組合相同的正則表達式,你可以使用一個lookahead:

^(?=[chars]+\z)expression 
相關問題