我需要Regex.Replace中的匹配成为替换字符串的一部分。例如,如果我想将DOMAIN更改为<a>DOMAIN</a>
,无论它表示DOMAIN。如何让DOMAIN进入比赛?如何获得Regex.Replace中的匹配到替换字符串中?
regex.Replace(input, String.Format("<a>{0}</a>" WHAT_HERE?));
我如何找到 “WHAT_HERE?”?
我需要Regex.Replace中的匹配成为替换字符串的一部分。例如,如果我想将DOMAIN更改为<a>DOMAIN</a>
,无论它表示DOMAIN。如何让DOMAIN进入比赛?如何获得Regex.Replace中的匹配到替换字符串中?
regex.Replace(input, String.Format("<a>{0}</a>" WHAT_HERE?));
我如何找到 “WHAT_HERE?”?
您可以使用grouping construct(...)
:
string replaced = Regex.Replace("<input>", "(DOMAIN)", "<a>$1</a>");
安德鲁的答案是正确的,这里是你会怎么做,如果你想命名分组,然后更换按照名称(从安德鲁的dotnetfiddle扩展):
using System;
using System.Text.RegularExpressions;
public class Program
{
public static void Main()
{
string result = Regex.Replace("This is a test to see if DOMAIN gets replaced properly. DOMAIN", "(?<myName>DOMAIN)", "<a>${myName}</a>");
result.Dump();
}
}
输出:
This is a test to see if <a>DOMAIN</a> gets replaced properly. <a>DOMAIN</a>
是字符串文字“域”还是可以是任何东西?发布一些示例输入和预期输出。 – 2014-08-27 15:43:34