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