【问题标题】:MariaDB REGEXP_REPLACE backreferences not works in FUNCTIONMariaDB REGEXP_REPLACE 反向引用在 FUNCTION 中不起作用
【发布时间】:2019-08-14 18:52:15
【问题描述】:

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

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)

【问题讨论】:

    标签: regex mariadb stored-functions backreference


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 2020-04-25
      • 2014-10-07
      • 1970-01-01
      • 2010-12-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-12-17
      • 1970-01-01
      相关资源
      最近更新 更多