2011-08-20 43 views
2

我有兩個正則表達式:正則表達式來否定兩個條件

".*-.*adm.*" 
".*-svc" 

有人能解釋我怎麼能去匹配所有不匹配的字符串/符合上述兩個正則表達式?

Ps。使用VBScript

+0

你就不能測試,看看是否're.test()'是假的? – 2011-08-21 01:02:47

+0

對,但是有一些方法可以在一個步驟中執行驗證,我的意思是類似於(。* - 。* adm。* |。* - svc)? – m0dest0

回答

0

你會兩個表達式,然後使用Not,像這樣。

Dim re 
Set re = new regexp 

re.Pattern = "(.*-.*adm.*)|(.*-svc)" 
re.IgnoreCase = true 

if Not re.Test(YOUR_STRING) then 
    ' Do whatever 
end if 
+0

感謝布洛克,它的工作! – m0dest0

+0

不客氣,樂意效勞! –

0

我覺得negative lookahead是你要尋找的工具:

^(?![^-]*-(?:.*adm|svc)).* 
+0

感謝艾倫,但看起來像這個正則表達式只適用於Perl,我使用VBScript。 – m0dest0

+0

哎呀!我曾經假設VBScript支持與JavaScript相同的正則表達式語法,現在我認爲這是一種愚蠢的假設。正則表達式本身也有一些錯誤。 –