我想用java regex来否定一组单词。
比如说,我想否定cvs
,svn
,nvs
,mvc
。我写了一个正则表达式,它是^[(svn|cvs|nvs|mvc)]
。
有些人认为这似乎行不通。
发布于 2009-08-26 10:37:37
试试这个:
^(?!.*(svn|cvs|nvs|mvc)).*$
如果文本不包含svn、cvs、nvs或mvc之一,则匹配文本。
这是一个类似的问题:C# Regex to match a string that doesn't contain a certain string?
发布于 2009-08-26 09:56:01
事情没那么简单。如果你想否定一个单词,你必须将它拆分成字母,并否定每个字母。
所以要否定
/svn/
你必须要写
/[^s][^v][^n]/
所以你想过滤掉的东西会变成非常难看的正则表达式,我认为使用这个正则表达式会更好
/svn|cvs|nvs|mvc/
当你测试你的字符串时,只要否定结果就行了。
在JS中,这看起来更像这样:
!/svn|cvs|nvs|mvc/.test("this is your test string");
发布于 2009-08-26 09:56:26
您的正则表达式错误。在方括号之间,可以将字符放入require或ignore。如果你找不到^(svn|cvs|nvs|mvc)$
,那你就完了。
https://stackoverflow.com/questions/1333540
复制相似问题