我有这个文字
'Random Text', 'a\nb\\c\'d\\', 'ok'
Run Code Online (Sandbox Code Playgroud)
我希望它成为
'Random Text', 'a\nb\c''d\', 'ok'
Run Code Online (Sandbox Code Playgroud)
这个问题正在逃避.而不是逃避与\我现在只能逃跑'用''.这是为第三方程序,所以我无法更改它,因此需要将一个转义方法更改为另一个.
问题是\\'.如果我做字符串替换它将变为\''而不是\'.也\n并不是一个新行,但实际文本\n不应进行修改.我尝试使用正则表达式,但我不能想办法说,如果'将其替换''否则,如果\\将其替换\.显然,分两步执行此操作会产生问题.
如何正确替换此字符串?
如果我没有理解你的问题,问题在于更换\\同\,那么这可能会导致另一种替代,如果它的权利之前发生'.一种技术是首先将它替换为中间字符串,确保在其他任何地方都不会出现,然后在完成后将其替换回来.
var str = @"'Random Text', 'a\nb\\c\'d\\', 'ok'";
str.Replace(@"\\", "NON_OCCURRING_TEMP")
.Replace(@"\'", "''")
.Replace("NON_OCCURRING_TEMP", @"\");
Run Code Online (Sandbox Code Playgroud)
正如@AlexeiLevenkov所指出的,您也可以同时Regex.Replace进行两种修改.
Regex.Replace(str, @"(\\\\)|(\\')",
match => match.Value == @"\\" ? @"\" : @"''");
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
200 次 |
| 最近记录: |