簡體   English   中英

如何在.NET Regex Replace中轉義替換/替換部分

[英]How to escape the substitution/replacement part in .NET Regex Replace

我想在.NET中的regex replace命令中轉義替換部分:

public static string GetPriceMessage(string data, string price)
{
    var repl = "This is a $1 priced at " + price + " suitable for $2.";
    return Regex.Replace(data, "item_name: ([^;]+); suitable: ([^;]+)", repl);
}

var price = "$15/item";
var data = "item_name: Puzzle; suitable: all ages";

GetPriceMessage(data, price)

我想確保price被逐字替換。 Regex.Escape不起作用。

您只需在替換中轉義$ ,因為所有替換均以$開頭。 即只使用:

price.Replace("$", "$$");

有關詳細信息,請參見以下問題: 處理包含美元字符的正則表達式轉義替換文本

替換是在替換模式中唯一可識別的正則表達式語言元素。 所有其他正則表達式語言元素(包括字符轉義符)僅在正則表達式模式中允許使用,而在替換模式中不識別。

[...]

在替換模式中,$表示替換的開始。

暫無
暫無

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

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