Regex几乎没有出现任何条件

时间:2015-12-29 15:23:29

标签: regex

我想知道我应该改变什么来使这个范围运行良好。

我需要找到的是具有以下结构的代码的所有出现:

new MyObject(parameters)
{somethingHere}

MyObject,参数和其他内容可能有任何内容。此外,(...)和{...}之间可能是新行或只是空格。

我试图做的是:

new [^(]*([^)]*)){[^}]*}

然而,这并不好用。我已尝试在http://www.regular-expressions.info/continue.html上找到一些内容,以下部分非常有前景,但失败了:http://www.regular-expressions.info/continue.html

愿任何人给我一个暗示,我的表情应该改变什么?

此致

2 个答案:

答案 0 :(得分:1)

new\s+\w+\(.*\)[\s\S][^}]+}会完成这项工作吗?

测试here

enter image description here

答案 1 :(得分:1)

如果表达式中有以下更改,则可能会有效

new \w+\(.*\)\s{[\s\S]+?}

但是,如果任何子例程具有内部块,则它具有匹配的限制。例如,这个完全匹配

new MyObject(parameters)
{
   int a;
   somethingHere 
}

但它只会部分匹配此代码

new MyObject(parameters)
{
   int a;
   somethingHere

   if (a == x)
   {
     someotherthinghere
   }
}