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

Posted

技术标签:

【中文标题】正则表达式使用 postgres regexp_replace() 用单引号替换反斜杠和单引号【英文标题】:regex to replace backslash and single quote with single quote using postgres regexp_replace() 【发布时间】:2015-03-13 00:36:51 【问题描述】:

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

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

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

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

【问题讨论】:

【参考方案1】:

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

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

希望这会有所帮助。

【讨论】:

我最终使用了这个并接受了,我也很感谢你的解释。【参考方案2】:

您可以尝试以下方法:

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

编辑:当然 \''+ 更好

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

【讨论】:

为什么不'\\''+'

以上是关于正则表达式使用 postgres regexp_replace() 用单引号替换反斜杠和单引号的主要内容,如果未能解决你的问题,请参考以下文章

使用正则表达式在 postgres 中查找 LETTERS-NUMBER 对

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

Postgres 正则表达式替换不起作用

Postgres中的正则表达式查找和替换

postgres 与正则表达式匹配

来自 Postgres 正则表达式替换 PHP 语言中的匹配