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

Ind*_*igo 4 c# regex string

我们怎能取代'\\'一个字符串.(这可以使用Regex.IsMatch(), Regex.Matches(), Regex.Replace() 但是,它应该只在'没有\\\之前已经完成.(这是我卡住的地方)

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

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

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

Sim*_*Var 10

甚至不需要正则表达式.

var newStr = oldStr.Replace("\\'", "'").Replace("'", "\\'");
Run Code Online (Sandbox Code Playgroud)

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

[^\\]'
Run Code Online (Sandbox Code Playgroud)


And*_*ong 5

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

(?<!\\\\)'
Run Code Online (Sandbox Code Playgroud)

\\'
Run Code Online (Sandbox Code Playgroud)

用法

string output = Regex.Replace(input, "(?<!\\\\)'", "\\'");
Run Code Online (Sandbox Code Playgroud)