查找字符串匹配pattern1但不匹配模式2

时间:2015-05-18 13:32:35

标签: regex

我正在尝试处理将重构我的系统的一段代码。 所以我将阅读我的所有类,并使用正则表达式查找名为 Manager 的每个类或对象。 我只想为我写的课程这样做,所以我不想找到BeanManagerEntityManager类。

目前我的正则表达式是

/([a-zA-Z]*)Manager/

这很不错,但也包括BeanManagerEntityManager

我发现了这样一个问题:Regular expression to match a line that doesn't contain a word?。在这种情况下,OP希望找到任何与模式不匹配的东西,但在我的情况下,我希望找到与模式匹配的所有内容,除非它与第二种模式匹配

我有什么方法可以做到吗?

抱歉,我忘了这些例子

我想包括像

这样的内容
  

MyManager

     

myManager

     

ClientManager

     

clientManager

     

TestManager中

     

TestManager中

但排除

  

BeanManager

     

的EntityManager

1 个答案:

答案 0 :(得分:2)

使用带有负前瞻的单词边界来排除您要忽略的化合物:

\b(?!Bean|Entity)([a-zA-Z]*)Manager\b

请参阅demo