我需要在代码中找到所有方法,这些方法通过调用(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
查看演示