与X字词相匹配的Eclipse和正则表达式,但不包括一些较长的字词,包括X

时间:2018-11-29 15:40:15

标签: regex eclipse

作为一个例子:我想使用Eclipse的文件搜索来统计be(不区分大小写)的出现,但是不计算believedbabel,{{1}的出现}和wannabe。假设我们有“代码”的示例部分:

become

我想让Eclipse数一数,“代码”的上面部分包含2个匹配项(在// Belfast is believed to become a part of the world where // people use word "be" most often; wannabe, babel? Belfast中)。总而言之,我正在寻找一个正则表达式,它:

  • 匹配所有包含be(不区分大小写)的单词,

同时:

  • 与显式单词"be"不匹配
  • 与显式单词become不匹配
  • 与显式单词babel不匹配
  • 与显式单词believed不匹配

你能告诉我,我怎么做到?

编辑: 我已经编辑了问题正文,因为我之前提供的示例未完全匹配问题的标题。此外,我提供了带有明确规则的项目符号列表。

1 个答案:

答案 0 :(得分:0)

尝试类似这样的操作:(?i)\b(\w*be(?!lieved|come)\w*)\b

示例:https://regex101.com/r/79VEzr/1

说明:

  • (?i)-用于启用不区分大小写的标志
  • \b-匹配单词边界(在表达式的两端都匹配单个单词)
  • (\w*be(?!lieved|come)\w*)-捕获单词
    • \w*-匹配任何单词字符
    • be-从字面上匹配be
    • (?!lieved|come)-负向查找,以确保believed之后没有跟随come(删除了相信并从结果中删除)
    • \w*-匹配be之后的更多单词字符
  • \b-匹配结束词的边界