如果单独引用,请替换单引号

skm*_*asq 2 c# string replace escaping

我有话 ST.JOHN'S

如果我跑这两次(为了论证,我有一个合理的理由):

String.Replace("'", "''")
Run Code Online (Sandbox Code Playgroud)

结果将是 ST.JOHN''''S

我怎么能代替'用单引号''两个单引号只有'单引号是没有任何额外'围绕单引号?

p.s*_*w.g 5

您可以使用正则表达式,如下所示:

Regex.Replace("ST.JOHN'S", "([^']|^)'([^']|$)", "$1''$2")  // ST.JOHN''S
Run Code Online (Sandbox Code Playgroud)

或者像这样:

Regex.Replace("ST.JOHN'S", "(?<!')'(?!')", "''")  // ST.JOHN''S
Run Code Online (Sandbox Code Playgroud)

无论哪种方式,这只会取代单'字符不会被任何其他包围'字符.