另一个正则表达式帮助不匹配单词
Another regex help for not matching word
我需要在代码中找到所有通过调用(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
见demo
我需要在代码中找到所有通过调用(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
见demo