[英]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.