我需要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