在最近的开发工作中,我经常需要通过搜索代码库来查找特定的多行文本(*)。 注意:这些多行文本通常是后端方法或前端标签。
在以下情况下,要查找名称类似于doSomethingXxx
的方法,我使用正则表达式 public void doSomething.+\(\) \{[\s\S]+?\}
,它很好用(获得3个匹配项)。
但是,当我需要查找包含/不包含某些字符串的特定多行文本时,在以下情况下,查找名称类似于doSomethingXxx
但包含/排除字符串{{1 }} ,到目前为止,我还没有解决方案。
在查找包括字符串456
的方法时,正则表达式应返回1个匹配项-方法 456
;当查找不包括字符串doSomething2
的方法时,正则表达式应返回2个匹配项-方法 456
和 doSomething1
。
以下是我测试过的一些失败的正则表达式: doSomething3
(返回1个匹配,其中包含方法 public void doSomething.+\(\) \{[\s\S]+?456[\s\S]+?\}
和< strong> doSomething1
), doSomething2
(返回3个匹配项,它们是方法 public void doSomething.+\(\) \{[\s\S]+?(456){0}[\s\S]+?\}
, doSomething1
和 doSomething2
)。
您能帮忙找到一个解决方案吗?非常感谢。
doSomething3