如何使用正则表达式匹配包含/排除某些字符串的多行文本?

时间:2018-09-13 09:19:47

标签: regex multiline

在最近的开发工作中,我经常需要通过搜索代码库来查找特定的多行文本(*)。 注意:这些多行文本通常是后端方法或前端标签。

在以下情况下,要查找名称类似于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

0 个答案:

没有答案