正则表达式-查找所有出现的单词并排除包含该单词的某些单词

时间:2019-07-22 13:25:51

标签: regex

到处搜索都找不到解决方案,并且已经为此花了我一段时间了。

我想搜索单词end中所有出现的单词(不包含的单词),但要排除某些单词-我想指定自己。

例如,我对(应匹配)的所有可能组合感兴趣:

  • 结束
  • 已结束
  • 日期结束
  • 已结束
  • 结束日期

但是我想排除所有这些词,例如(不匹配):

  • 渲染
  • appendTo
  • 扩展
  • renderGrid

在不选择整行的情况下,仅匹配单词。

我能得到的最接近的是此正则表达式:(?!extend|appendTo|render|renderGrid)(\b.*end.*\b),但这会选择整行,而且在IntelliJ IDEs中的搜索文件中,另外的方法也不起作用。令人沮丧

有人愿意改进并使其在IDE中的搜索文件中起作用吗?

1 个答案:

答案 0 :(得分:1)

您可以在两端匹配0+次非空格字符\S*或使用字符类[\w-]*并指定允许匹配的内容。

您可以省略捕获组,而仅获取匹配项。

(?!extend|append|render|renderGrid)\b\S*end\S*\b

Regex demo