如何创建一个正则表达式,用于查找文本for
后跟一些文本,然后是文本{
后跟一些文本,然后是文本DAO.
,后跟一些文本,然后文本}
,例如:
for(Entity e : list){
e.setX(someDAO.findX(e.getId()));
}
或者:
for(Entity e : list){
if(condition){
someDAO.op(e.getId());
}
}
这个对我不起作用:
\bfor\b(?s).*?DAO\.
但是这会匹配任何DAO.
之后的内容以及里面的内容,我必须确保我在for循环中。
我该如何解决这个问题?
答案 0 :(得分:1)
你需要确保开头数'{'大于结束数'}',以便在for之后存在一个'{'而不是'}'。
以下是一个类似的问题:Regular Expression to match outer brackets
所选答案表明,这不是正则表达式任务,但有评论者和其他答案不同意。祝你好运。
答案 1 :(得分:0)
\bfor\b.*\{.*DAO\..*\}
s
- 标记。所以在JavaScript中它将是:/\bfor\b.*\{.*DAO\..*\}/s
或没有s
- 标志:
\bfor\b.*(\{.*[\r\n]*.*)+DAO\.(.*[\r\n]*.*\})+