繁体   English   中英

C#正则表达式反转匹配

[英]C# Regular Expression Reversing Match

我正在寻找将substringof('has',verb)的一部分字符串转换为contains(verb,'has')

如您所见,更改的只是包含的 子字符串 ,并且传递给函数的两个参数相反。

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

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

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

.NET小提琴示例

您可以使用以下正则表达式:

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

工作演示

然后,您可以像这样使用字符串替换:

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

在此处输入图片说明

顺便说一句,如果您只想更改substringof ,则可以使用:

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM