正则表达式替换括号内的内容忽略嵌套括号

时间:2013-08-28 14:04:49

标签: asp.net regex

我有以下一行

(textMsg).Style.set_BackgroundColor(Color.FromArgb(0, 0, 0));

我想要的是

(textMsg).Style.BackgroundColor = Color.FromArgb(0, 0, 0);

我尝试使用以下regEx模式,但没有运气

set_(.*)\((([^()]*|(?R))*)\)

我将不胜感激。

由于

1 个答案:

答案 0 :(得分:0)

您可以尝试这样做:

set_([^(]*)\((.*)\)

这会在组set_中的$1之后捕获属性名称,并且方法调用的()之间的任何内容都会捕获到组$ 2,因此您可以使用像这样的替换字符串:

$1 = $2

<强> Regex 101 Demo

您的表达式无效且无法编译,因为您有不平衡的括号和未经识别的标记。