我需要更換文本的表達式,如下例所示:正則表達式 - 通過鏈路替換代碼
種皮M123456 TESTB 結果=種皮www.test.com TESTB
這字符串whith 1個字符M後跟6個數字,表示要由超鏈接替換的代碼。
請幫助我,用正則表達式來解決這個問題
我需要更換文本的表達式,如下例所示:正則表達式 - 通過鏈路替換代碼
種皮M123456 TESTB 結果=種皮www.test.com TESTB
這字符串whith 1個字符M後跟6個數字,表示要由超鏈接替換的代碼。
請幫助我,用正則表達式來解決這個問題
這應該這樣做
string Result = Regex.Replace("estA M123456 testB", "M[0-9]{6}", "www.test.com");
模式是M[0-9]{6}
- 一個接着6位
您可以使用自定義M
MatchEvaluator
根據數量來翻譯鏈接,如下所示:
private static Dictionary<int, string> knownLinks = new Dictionary<int, string>()
{
{123456, "www.test.com"},
{999999, "www.foo.com"},
};
private static string LinkReplacer(Match match)
{
int linkNumber = Convert.ToInt32(match.Groups[1].Value);
string link = knownLinks[linkNumber];
return link;
}
public static void Replace()
{
string text = "testA M123456 testB Result M999999 testC";
string replacedText = Regex.Replace(text, "M([0-9]{6})", LinkReplacer);
Console.WriteLine(replacedText);
}
// output: testA www.test.com testB Result www.foo.com testC
幾點說明:
M([0-9]{6})
中的()括號告訴Regex這是一個「Group」。在LinkReplacer中,您可以看到我們然後訪問該組以檢索內容。 (我們也可以刪除整個比賽的第一個字母,總是一個'M'。)欲瞭解更多信息:https://msdn.microsoft.com/en-us/library/ht1sxswy(v=vs.110).aspx
對不起,我忘了回答。該解決方案正常工作......謝謝 –
我忘了回答你,但感謝。該解決方案正常工作 –