繁体   English   中英

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

[英]Replace a pattern in string only if a certain condition is satisfied - Regex

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

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

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

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

甚至不需要正则表达式。

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

使用正则表达式,您可以在其中找到所有'没有\\\\

[^\\]'

我认为@YoryeNathan获胜。 但只是为了教授一个正则表达式的教训,这正是负面的背后断言所存在的。 更换

(?<!\\\\)'

\\'

用法

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM