首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >正则表达式不包含某些单词

正则表达式不包含某些单词
EN

Stack Overflow用户
提问于 2017-03-06 10:20:05
回答 4查看 12.6K关注 0票数 3

我正在寻找一个正则表达式,将排除一个巨大的文本文件/文件中的以下单词。

代码语言:javascript
运行
复制
@author
@Autowired
@Override
@param
@SuppressWarnings

我已经尝试过了,但没有像预期的那样工作。

代码语言:javascript
运行
复制
@[^(author)(Autowired)(Override)(param)(SuppressWarnings)].*
EN

回答 4

Stack Overflow用户

发布于 2017-03-06 10:25:13

尝试使用以下正则表达式(使用):

代码语言:javascript
运行
复制
@(?!author|Autowired|Override|param|SuppressWarnings).*

请参阅

票数 6
EN

Stack Overflow用户

发布于 2017-03-06 11:13:21

正则表达式中的方括号用于字符类。当您将一组字符放在方括号中时,这与列出的字符之一的one character匹配。所以

代码语言:javascript
运行
复制
[author]

匹配一个字符(如果它是ahortu )。它不查找单词author。将^放在前面还会查找一个不在列表中的字符:

代码语言:javascript
运行
复制
[^author]

匹配一个字符,只要它不是ahortu

但这里的关键是[]不能用于匹配单词或其他序列。在您的示例中,

代码语言:javascript
运行
复制
@[^(author)(Autowired)(Override)(param)(SuppressWarnings)].*

方括号中的部分匹配一个字符,该字符不是(au或方括号中出现的任何其他字符(其中许多字符出现多次,但这不会影响任何内容)。

票数 3
EN

Stack Overflow用户

发布于 2017-03-06 10:28:42

你可以使用负向先行:

代码语言:javascript
运行
复制
@(?!author|Autowired|Override|param|SuppressWarnings)\S+

基本上,它查找后跟该单词列表的@而不是,然后匹配其后的任何非空格字符。

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

https://stackoverflow.com/questions/42616535

复制
相关文章

相似问题

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