MariaDB REGEXP_REPLACE反向引用在FUNCTION中不起作用

时间:2019-08-14 18:52:15

标签: regex mariadb stored-functions backreference

我有一个简单的表达方式:

SELECT REGEXP_REPLACE('aaa 123 bbb 456 ccc', '([0-9]+)', LPAD('\\1', 10, '0'));
+-------------------------------------------------------------------------+
| REGEXP_REPLACE('aaa 123 bbb 456 ccc', '([0-9]+)', LPAD('\\1', 10, '0')) |
+-------------------------------------------------------------------------+
| aaa 00000000123 bbb 00000000456 ccc                                     |
+-------------------------------------------------------------------------+

但是,如果我将其放入功能中:

CREATE FUNCTION test()
RETURNS VARCHAR(4000)
BEGIN
       RETURN REGEXP_REPLACE('aaa 123 bbb 456 ccc', '([0-9]+)', LPAD('\\1', 10, '0'));
END

它不起作用:

SELECT test();
+-----------------------------------+
| test()                           |
+-----------------------------------+
| aaa 0000000001 bbb 0000000001 ccc |
+-----------------------------------+

我该如何解决? (10.1.38-MariaDB-0 + deb9u1)

1 个答案:

答案 0 :(得分:0)

使用'\1'代替'\\1'。...