C#正则表达式反转匹配

时间:2015-03-17 21:31:57

标签: c# regex

我希望将 substringof('has',verb)的字符串的一部分转换为包含(动词,'has')

正如您所看到的,正在改变的只是子串包含,并且传递给函数的两个参数被反转。

我正在寻找使用正则表达式的通用解决方案。优选使用标签。即一旦我得到两场比赛,我需要能够通过使用$ 2 $ 1来反转比赛(这是我记得在perl中这样做的方式)

2 个答案:

答案 0 :(得分:1)

您可以使用此正则表达式代码:

var re = new Regex(@"substringof\('([^']+)',([^)]+)\)");
string output = re.Replace(input, @"contains($2, '$1')");

.NET Fiddle example

答案 1 :(得分:0)

你可以使用这样的正则表达式:

.*?\((.*?),(.*?)\)

<强> Working demo

然后你可以使用这样的字符串替换:

contains(\2,\1)    or
contains($2,$1)

enter image description here

顺便说一下,如果您只是想更改substringof,那么您可以使用:

substringof\((.*?),(.*?)\)