我正在尝试构建一个正则表达式,它可以查找包含撇号(O'Connor,O'Neil)的名称并将撇号替换为 2 个撇号(O''Connor,O''Neil)。
我不想对相关字符串中的所有撇号执行此操作,而只是出现在两个字母(大写或小写)之间的撇号。现在,我可以毫不费力地找到 LETTER-APOSTROPHE-LETTER 的实例,但我不确定如何采用该序列'
并将''
.
您说这是用于将值插入数据库。不要这样做 - 改用参数化查询,这将正确处理转义。 乔恩斯基特这么说。
new Regex("([a-zA-Z])'([a-zA-Z])").Replace(input, match => match.Groups[1] + "''" + match.Groups[2])
string result = Regex.Replace(input, @"(?<=[^'])(')(?=[^'])", "''");
这会起作用,我刚刚测试过:
Regex.Replace("(\w)'(\w)","$1''$2");
(O'Connor, O'Neil) 变成 (O''Connor, O''Neil)