2011-08-20 62 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相同的正则表达式语法,现在我认为这是一种愚蠢的假设。正则表达式本身也有一些错误。 –