正则表达式使用 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\'s
或Hello 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 对