2011-09-16 101 views
1
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庫。RegEx - 檢查字符串是否包含特定的字符串失敗?

在上面的例子中,我想檢查字符串是否包含單詞'VIRTUAL',如果是的話返回一個錯誤匹配。 我認爲它幾乎所有的除了模式的其餘部分使字符串有效。它無視我的第一個負面看法。

我試過從論壇的各種組合,但我卡住了。

任何幫助表示讚賞。

乾杯 聶

回答

1

這一個:^([a-zA-Z]{3})(?!VIRTUAL)[a-zA-Z]{7}\d{3}$

也許更好的匹配這一模式^([a-zA-Z]{3})VIRTUAL\d{3}$和反轉的結果?

+0

謝謝,第一個很棒! –

1

你必須在你的正則表達式的中間,這意味着$^「字符串的結尾,其次是字符串的開始」。當然,這永遠不會匹配。

嘗試

^(?!.*VIRTUAL)([a-zA-Z]{3})([a-zA-z0-9]{7})(\d{3})$ 
相關問題