2011-09-19 55 views

回答

3

就快成功了:

^((?!string1|string2).)*$ 

可以在負先行使用|字符作爲左右,如果只將字符串匹配就會失敗。

請注意,您也可以重寫這樣這個特殊的例子:

^((?!string[12]).)*$ 

我的假設是,你的實際使用情況下不會是微不足道,因此使用|是比較通用的解決方案。

+0

string1和string2的長度必須相同,儘管 – arnaud576875

+0

爲什麼會出現這個問題? –

+0

這是一個問題,如果string1和string2不具有相同的長度,因爲它在這種情況下不起作用 – arnaud576875

1

你甚至不需要正則表達式,像「索引子字符串」這樣的函數肯定存在於你正在使用的語言中。

如果你真的需要的正則表達式比賽,不要過度工程,並用你的語言特性:

if (!(str =~ /regex/) && !(str =~ /regex/)) 
{ 
    ... 
0

另一種選擇是使用(?!)作爲環視。就像這樣:

^(?!.*string1)(?!.*string2).*$ 
相關問題