如何转义 .NET 正则表达式替换中的替换/替换部分



我想转义 .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("$", "$$");

有关详细信息,请参阅以下问题:处理包含美元字符的正则表达式转义替换文本

替换是唯一在替换模式中识别的正则表达式语言元素。所有其他正则表达式语言元素(包括字符转义)仅在正则表达式模式中允许使用,在替换模式中无法识别。

[...]

在替换模式中,$ 表示替换的开始。

相关内容

  • 没有找到相关文章

最新更新