[英]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.