正则表达式匹配for循环内的模式

时间:2018-03-16 10:41:52

标签: regex search

如何创建一个正则表达式,用于查找文本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循环中。

我该如何解决这个问题?

2 个答案:

答案 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]*.*\})+