我有一个用VBScript编写的URL检查的正则表达式。
regLinkEx.Pattern = "(^|[\s>='])((((http|ftp|https):\/\/)?([а-яёa-z\-_]{1,})(\.[а-яёa-z\-_]{2,})*(\.([^exe|EXE|xml|XML|dll|DLL|ini|INI|bat|BAT|dat|DAT|bin|BIN|mif|MIF|txt|TXT|]){2,}|рф)+)([\w\-\.,@?^=%&:/~\+#]*[\w\-\@?^=%&/~\+#])?)"
我排除了我需要的文件扩展名,但我也希望匹配a到z的字母 这是我想要的部分,我正试图这样做......
(\.[a-z]*([^exe|EXE|xml|XML|dll|DLL|ini|INI|bat|BAT|dat|DAT|bin|BIN|mif|MIF|txt|TXT|]){2,}|рф)+)
......但它不起作用。
任何人都可以帮助我吗?
答案 0 :(得分:0)
在正则表达式中,方括号表示“任何字符内”的匹配。因此,例如,正则表达式[^exe|EXE|xml]{2,}
匹配[exEXml]中不存在的任何两个字符。
如果您要排除某些文件扩展名,请使用negative lookahead。由于负前瞻是零长度,您可以将它们串在一起以创建类似“X后跟以下任何内容:EXE,XML,DLL”的行为(正则表达式为X(?!EXE)(?!XML)(?!DLL)
)。
作为旁注,VBScript完全支持负向前瞻,不支持负面后瞻(更复杂和更密集的行为)。