我想转义 .NET 中正则表达式替换命令中的替换部分:
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("$", "$$");
有关详细信息,请参阅以下问题:处理包含美元字符的正则表达式转义替换文本
替换是唯一在替换模式中识别的正则表达式语言元素。所有其他正则表达式语言元素(包括字符转义)仅在正则表达式模式中允许使用,在替换模式中无法识别。
[...]
在替换模式中,$ 表示替换的开始。