我想使用 java regex 否定一组单词。
说,我想否定cvs
, svn
, nvs
, mvc
。我写了一个正则表达式^[(svn|cvs|nvs|mvc)]
。
有些似乎不起作用。
我想使用 java regex 否定一组单词。
说,我想否定cvs
, svn
, nvs
, mvc
。我写了一个正则表达式^[(svn|cvs|nvs|mvc)]
。
有些似乎不起作用。
试试这个:
^(?!.*(svn|cvs|nvs|mvc)).*$
如果它不包含 svn、cvs、nvs 或 mvc 之一,这将匹配文本。
这是一个类似的问题:C# Regex to match a string that does not contain a certain string?
没那么简单。如果你想否定一个词,你必须把它分成字母并否定每个字母。
所以要否定
/svn/
你必须写
/[^s][^v][^n]/
所以你想要过滤掉的东西会变成非常丑陋的正则表达式,我认为使用这个正则表达式会更好
/svn|cvs|nvs|mvc/
当您针对它测试您的字符串时,只需否定结果。
在 JS 中,这看起来更像:
!/svn|cvs|nvs|mvc/.test("this is your test string");
你的正则表达式是错误的。在方括号之间,您可以放置需要或忽略的字符。如果你没有找到^(svn|cvs|nvs|mvc)$
,你很好。