我有ST.JOHN'S
如果我跑了两次(为了论证而,我有一个合理的理由):
String.Replace("'", "''")
结果将为ST.JOHN''''S
当'
单引号没有任何其他''
单引号时,如何将'
单引号替换为'
两个单引号 的单引号引用了吗?
答案 0 :(得分:5)
您可以使用regular expression,如下所示:
Regex.Replace("ST.JOHN'S", "([^']|^)'([^']|$)", "$1''$2") // ST.JOHN''S
或者像这样:
Regex.Replace("ST.JOHN'S", "(?<!')'(?!')", "''") // ST.JOHN''S
无论哪种方式,这只会替换任何其他'
字符所包围的单个'
字符而不是。
答案 1 :(得分:1)
您可以使用正则表达式断言引用本身就是全部。
System.Text.RegularExpressions.Regex.Replace(inputText, "(?<!')'(?!')", "''")
结果:
System.Text.RegularExpressions.Regex.Replace("ST.JOHN'S", "(?<!')'(?!')", "''")
// ST.JOHN''S
System.Text.RegularExpressions.Regex.Replace("ST.JOHN''S", "(?<!')'(?!')", "''")
// ST.JOHN''S