我使用以下代码进行不区分大小写的替换:
returned = Regex.Replace(source, Regex.Escape(oldValue),
Regex.Escape(newValue),
RegexOptions.IgnoreCase);
但是Regex.Escape
会导致我的空格被\
source = "Description: <module>";
oldValue = "<module>";
newValue = "Module 1 - Upload Data File";
returned = "Description: Module\ 1\ -\ Upload\ Data\ File";
我知道如果我删除Regex.Escape它会有效但我说实话我不记得我使用Regex.Escape
的原因但是我必须有理由而且我不会这样做。我想打破以前的工作。
我知道如何解决这个问题吗?
感谢。
答案 0 :(得分:1)
Regex.Escape方法:转义一组最小字符(\,*,+,?,|,{,[,(,),^,$ ,.,#和白色)通过用它们的转义码替换它们。这指示正则表达式引擎按字面解释这些字符而不是元字符。
您不应该转义newValue
变量,因为它会用转义代码替换任何空格:
来自:' '
- &gt;致:'\ '
。
尝试从Regex.Escape
中删除Regex.Escape(newValue)
,它应该有效。