【发布时间】:2021-12-10 05:15:19
【问题描述】:
我必须在 PostgreSQL 中使用正则表达式从文本中查找并删除一个子字符串。子字符串对应的条件是:for|while的双引号之间的文本>
示例
文字:
PERFORM xxkkcsort.f_write_log("INFO", "xxkkcsort.f_load_tables__outof_order_system", " Script for data loading: ", false, v_sql, 0);
所以,我的目的是找到并删除子字符串“数据加载脚本:”。 当我尝试使用下面的脚本时:
SELECT regexp_replace(
'PERFORM xxkkcsort.f_write_log("INFO", "xxkkcsort.f_load_tables__outof_order_system", "> Table for loading: "||cc.source_table_name , false, null::text, 0);'
, '(\")(.*(for|while)(\s).*)(\")'
, '');
我已经替换了双引号内的所有文本。结果如下:
PERFORM xxkkcsort.f_write_log(||cc.source_table_name , false, null::text, 0);
解决问题的正确正则表达式是什么?
【问题讨论】:
标签: regex postgresql