如何使用正则表达式替换postgresql中的字符串?

时间:2014-06-27 05:01:37

标签: regex string postgresql replace pattern-matching

t.emailAddresses包含以逗号分隔的电子邮件地址。

我想用'0'替换一些电子邮件地址,如何使用正则表达式?

我用replace()写了它,但我想用regex wayemailAddresses写它

SELECT t.emailAddresses,
       replace (replace (replace (replace (t.emailAddresses,
         'jack@example.com', '0'), 'jack@mybox.com', '0'), 'emly@example.com',
         '0'), 'emly@mybox.com', '0') as replaced_email_address
FROM table t
WHERE t.id = 100;

提前致谢!!!

1 个答案:

答案 0 :(得分:0)

替换内容的一般正则表达式语法是:

SELECT REGEXP_REPLACE(mycolumn, $rxb$^jack@example\.com$$rxb$, $$0$$, 'g') FROM mytable;

但是...

  • 如果您要更换文字(不会发生变化,那就没有意义了。
  • 如果您想要替换以jack
  • 开头的电子邮件,这非常有用

例如,

SELECT REGEXP_REPLACE(mycolumn, $$^jack.*$$, $$0$$, 'g') FROM mytable;