正则表达式使用 postgres regexp_replace() 用单引号替换反斜杠和单引号

regex to replace backslash and single quote with single quote using postgres regexp_replace()

正如标题所说,我不是最好的正则表达式,所以任何人都可以为以下内容提供适当的正则表达式:

UPDATE table SET column = REGEXP_REPLACE(column, {regex}, '''');

基本上,我想用一个单引号替换任何反斜杠 (\) 后跟 一个或多个 个单引号的实例。

所以,字符串 Hello World\'sHello World\'''''s 应该变成 Hello World's,而不是 Hello World\s

您可以尝试以下方法:

SELECT REGEXP_REPLACE(column, '\''['']*', '''','g') from table

编辑:当然 \''+ 更好

SELECT REGEXP_REPLACE(column, '\''+', '''','g') from table

这个比较简单。请注意,反斜杠字符 \ 和单引号字符 ' (您在 OP 中对其进行了转义)都需要进行转义。区别在于反斜杠必须在正则表达式本身中转义,而单引号在字符串文字中转义。不管怎样,题外话够多了。

UPDATE table SET column = REGEXP_REPLACE(column, '\''+', '''', 'g');

希望对您有所帮助。