首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >通过java正则表达式对一组单词求反

通过java正则表达式对一组单词求反
EN

Stack Overflow用户
提问于 2009-08-26 09:48:50
回答 3查看 56.1K关注 0票数 21

我想用java regex来否定一组单词。

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

有些人认为这似乎行不通。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2009-08-26 10:37:37

试试这个:

代码语言:javascript
复制
^(?!.*(svn|cvs|nvs|mvc)).*$

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

这是一个类似的问题:C# Regex to match a string that doesn't contain a certain string?

票数 49
EN

Stack Overflow用户

发布于 2009-08-26 09:56:01

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

所以要否定

代码语言:javascript
复制
/svn/

你必须要写

代码语言:javascript
复制
/[^s][^v][^n]/

所以你想过滤掉的东西会变成非常难看的正则表达式,我认为使用这个正则表达式会更好

代码语言:javascript
复制
/svn|cvs|nvs|mvc/

当你测试你的字符串时,只要否定结果就行了。

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

代码语言:javascript
复制
!/svn|cvs|nvs|mvc/.test("this is your test string");
票数 2
EN

Stack Overflow用户

发布于 2009-08-26 09:56:26

您的正则表达式错误。在方括号之间,可以将字符放入require或ignore。如果你找不到^(svn|cvs|nvs|mvc)$,那你就完了。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1333540

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档