将某些字符组合替换为另一种

时间:2017-06-26 10:44:18

标签: c# .net regex

在C#中我尝试替换字符串中的字符。更确切地说,只要有一个双引号没有跟着,也没有在逗号之前,我想用单引号替换双引号。所以,例如:

John",123

和     123,"约翰

都很好,因为双引号之前或之后都有逗号,但是:

John"Marks

不合适,因为有一个双引号,它既没有前面没有逗号,所以应该用单引号替换它。即它应该成为:

John'Marks

我努力想象这一个......任何想法都有吗?感谢...

1 个答案:

答案 0 :(得分:6)

您可以使用环顾四周搜索正则表达式:

(?<!,)"(?!,)

RegEx Demo

RegEx分手:

  • (?<!,) - 断言前一个字符的否定Lookbehind不是逗号
  • " - 匹配双引号
  • (?!,) - 断言下一个字符的否定前瞻不是逗号

替换字符串只是一个引用"'"

<强>代码:

string repl = Regex.Replace(str, @"(?<!,)\"(?!,)", "'");