mariadb REGEXP_SUBSTR引发“pcre_exec:超出匹配限制“来自regexp

kadbb459  于 2023-03-02  发布在  其他
关注(0)|答案(1)|浏览(153)

我有一个带有登录字段的表帐户,我想从此登录字段提取干净的电子邮件
我的测试是:

DROP TABLE IF EXISTS tmp_test;
CREATE TABLE   tmp_test AS (
    SELECT id,
           REGEXP_SUBSTR(login, '[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,3})') clean_login,
           login
    FROM account
    LIMIT 5000
)

这个管用。
如果我取消限制:出现错误"pcre_exec:超出匹配限制"来自regexp
我正在寻找MariaDB选项来增加这个限制,没有成功。
感谢阅读。

eeq64g8w

eeq64g8w1#

MariaDB没有增加限制大小的选项,也没有添加它的计划。
另请参见MDEV-8637: sysvar to control pcre match limit.的注解:

  • 如果正则表达式太复杂,性能也会变得太差。应该考虑以更有效的方式重写正则表达式,或使用其他一些文本处理函数。*

相关问题