仅在满足特定条件时才替换字符串中的模式 - 正则表达式

时间:2013-05-02 13:49:38

标签: c# regex string

如何在字符串中用'替换\\'。 (这可以使用Regex.IsMatch(), Regex.Matches(), Regex.Replace()完成 但是,只有在'之前没有\\\时才应该这样做。 (这是我被困的地方)

这意味着找到之前没有'\的所有\\,然后添加相同的内容,即'替换为\\'

示例字符串:'abcd\'efg'hijkl'mno\\'pqrs'

结果字符串:\\'abcd\\'efg\\'hijkl\\'mno\\'pqrs\\'

2 个答案:

答案 0 :(得分:9)

甚至不需要正则表达式。

var newStr = oldStr.Replace("\\'", "'").Replace("'", "\\'");

使用正则表达式,您可以找到之前没有'的所有\\

[^\\]'

答案 1 :(得分:5)

我认为@YoryeNathan获胜。但只是为了教授正则表达式课程,这正是负面的后视断言的存在。取代

(?<!\\\\)'

\\'

<强>用法

string output = Regex.Replace(input, "(?<!\\\\)'", "\\'");