【发布时间】:2012-01-24 14:54:09
【问题描述】:
我正在尝试使用静态 RegEx.Replace 方法进行简单的替换,如果在替换字符串中我有“$0.00”或它的某种衍生物,它会失败。
代码如下:
void Main()
{
try
{
string inputString = "[BEGIN-LOOP:DETAILS]this is what I want to replace[END-LOOP:DETAILS]";
string replacementString = "some text $0.00";
inputString = Regex.Replace(inputString, @"(\[BEGIN-LOOP:DETAILS\])(.*?)(\[END-LOOP:DETAILS\])", replacementString, RegexOptions.IgnoreCase | RegexOptions.Singleline);
Console.WriteLine(inputString);
}
catch (Exception ex)
{
throw;
}
}
失败的正则表达式的输出是:
一些文本 [BEGIN-LOOP:DETAILS]这是我要替换的内容[END-LOOP:DETAILS].00
应该是
一些文字 $0.00
【问题讨论】:
-
我对正则表达式了解不多,但你必须逃避'$'吗?失败时究竟会发生什么?
-
我用输出更新了问题