abcVIRTUAL123 ^(?!.*VIRTUAL).*$^([a-zA-Z]{3})([a-zA-z0-9]{7})(\d{3})$ FALSE
abcVIRTUAL123 ^([a-zA-Z]{3})([a-zA-z0-9]{7})(\d{3})$ TRUE
abcLOCATOR123 ^(?!.*VIRTUAL).*$^([a-zA-Z]{3})([a-zA-z0-9]{7})(\d{3})$ FALSE
abcLOCATOR123 ^([a-zA-Z]{3})([a-zA-z0-9]{7})(\d{3})$ TRUE
您好,我是REGEX的新手,我正在使用Excel中的VBScript库。
在上面的示例中,我想检查字符串是否包含单词'VIRTUAL',如果是,则返回错误匹配。 除了模式的其余部分使字符串有效之外,我认为它几乎全部存在。 它无视我的第一个消极的期待。
我尝试过论坛的各种组合,但我被卡住了。
任何帮助表示感谢。
干杯 NIK
答案 0 :(得分:1)
你的正则表达式中间有$^
,意思是“字符串结束,然后是字符串的开头”。当然,这永远不会匹配。
尝试
^(?!.*VIRTUAL)([a-zA-Z]{3})([a-zA-z0-9]{7})(\d{3})$
答案 1 :(得分:1)
这一个:^([a-zA-Z]{3})(?!VIRTUAL)[a-zA-Z]{7}\d{3}$
也许更好地匹配这种模式^([a-zA-Z]{3})VIRTUAL\d{3}$
并反转结果?