另一个正则表达式帮助不匹配单词



我需要在代码中找到所有方法,这些方法通过调用(findBy,fetchUnique...等)获取某些实体(A,B,C,D,E..)但不清除会话,因此所有代码前面都有findBy,fetchUnique并且不清除会话。

所以我有这个正则表达式如下:

w*(A|B|C|D|E|F|G|H|I).*(?=.findBy)((?s)(?!.clear())

而且它不起作用,欢迎任何建议。

更新:因此,请根据要求添加更多详细信息

假设我在下面有一个方法:

public Long test(){
   A a = dao.findByKey(key);
   ....//use a here
   ....
   ....
   return xyz;
}

这应该匹配,因为对象 a 没有通过调用 dao.clear(a) 来清除,但下面的方法不应该匹配

public Long test(){
   A a = dao.findByKey(key);
   ....//use a here
   ....
   ....
   dao.clear(a);
   return xyz;
}

因为这里 a 已从会话中清除。

你快到了:

w*(A|B|C|D|E|F|G|H|I).*(?=.findBy)(?!(?s).*.clear()
                                           ||<= here's the diff

查看演示

最新更新