如何将Regex.Replace中的匹配转换为替换字符串?

时间:2014-08-27 15:36:41

标签: c# regex

我需要将Regex.Replace中的匹配作为替换字符串的一部分。例如,如果我想将DOMAIN更改为<a>DOMAIN</a>,无论它在哪里显示DOMAIN。如何让DOMAIN进入比赛?

regex.Replace(input, String.Format("<a>{0}</a>" WHAT_HERE?));

如何找到&#34; WHAT_HERE?&#34;?

2 个答案:

答案 0 :(得分:1)

您可以使用grouping construct (...)

string replaced = Regex.Replace("<input>", "(DOMAIN)", "<a>$1</a>");

示例: https://dotnetfiddle.net/Hu0cEO

答案 1 :(得分:0)

安德鲁的回答是正确的,如果你想命名分组,然后用名字替换它(从安德鲁的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>