【发布时间】:2019-11-09 04:16:27
【问题描述】:
我想用正则表达式替换mysql中的字符串。为此,我正在使用 REGEXP_REPLACE 但它没有给我想要的结果。
我正在尝试将&breakUp=Mumbai;city,Puma;brand& 替换为&breakUp=Mumbai;city,Puma;brand,Delhi;State&,但正则表达式替换没有给我想要的结果。
我正在使用以下 sql 查询:
SELECT REGEXP_REPLACE('&breakUp=Mumbai;city,Puma;brand&','&breakUp=([\w;,]*)&','&breakUp=$1,Delhi;State&');
但它给了我以下结果:
&breakUp=Mumbai;city,Puma;brand&
相同的正则表达式在除 sql 之外的其他地方也能正常工作。 在 mysql 和 mariadb 中如何解决这个问题?
【问题讨论】:
-
你确定替换的反向引用语法是
$1吗?在替换中尝试\\1。和[^&]*而不是[\w;,]* -
根据您的@WiktorStribiżew 的评论,请找到working demo
-
@Arulkumar 好的,那是 MySQL 8,
$1有效。好!
标签: mysql regex replace mariadb