通过 java 正则表达式否定一组单词

2022-09-01 22:01:05

我想使用java正则表达式否定一组单词。

说,我想否定 , , , .我写了一个正则表达式,它是.cvssvnnvsmvc^[(svn|cvs|nvs|mvc)]

有些似乎不起作用。


答案 1

试试这个:

^(?!.*(svn|cvs|nvs|mvc)).*$

如果它不包含 svn、cvs、nvs 或 mvc 之一,这将匹配文本。

这是一个类似的问题:C# 正则表达式匹配不包含某个字符串的字符串?


答案 2

没那么简单。如果你想否定一个单词,你必须把它拆分成字母,并否定每个字母。

所以要否定

/svn/

你必须写

/[^s][^v][^n]/

因此,您要过滤掉的内容将变成非常丑陋的正则表达式,我认为使用此正则表达式是更好的主意

/svn|cvs|nvs|mvc/

当你测试你的字符串时,只需否定结果。

在JS中,这看起来更不像那样:

!/svn|cvs|nvs|mvc/.test("this is your test string");