我想在.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
不起作用。
答案 0 :(得分:4)
您只需要在替换中转义$
,因为所有替换都以$
开头。即只需使用:
price.Replace("$", "$$");
有关详细信息,请参阅以下问题:Handling regex escape replacement text that contains the dollar character
替换是在替换模式中识别的唯一正则表达式语言元素。所有其他正则表达式语言元素(包括字符转义)仅在正则表达式模式中允许,并且在替换模式中无法识别。
[...]
在替换模式中,$表示替换的开始。