簡體   English   中英

用正則表達式替換C#正則表達式

[英]C# Regex replace with Regex

我有一個問題,我想用某些文本中的“ {{de | <text>}}}”替換每個“ [[::: <text>]]””。 我嘗試過

output = Regex.Replace(input, "[[:de:(.*)]]", "{{de|(.*)}}");

但它不會復制<text>。 我沒有其他想法如何正確地替換它。 希望您能夠幫助我。

使用惰性點模式和反向引用並轉義[符號:

output = Regex.Replace(input, @"\[\[:de:(.*?)]]", "{{de|$1}}");

如果de:]]之間的文本可以包含換行符,請使用RegexOptions.Singleline修飾符。

參見regex演示

在此處輸入圖片說明

如果將所有內容封裝在組中,則可以使用MatchEvaluator。 在線嘗試

public static void Main()
{
    var input = "[[:de:Hello World]]";
    var pattern = @"(\[\[:de:)(.+)(\]\])";
    var output = Regex.Replace(input, pattern, m => "{{de|" +  m.Groups[2].Value + "}}");
    Console.WriteLine(output);
}

產量

{{de|Hello World}}

您真的需要正則表達式嗎? 我認為您只能使用字符串替換方法;

output = input.Replace("[[:de:(.*)]]", "{{de|(.*)}}");

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM