【问题标题】:MariaDB Regex Replace only first instance of characterMariaDB Regex 仅替换字符的第一个实例
【发布时间】:2017-03-20 17:53:55
【问题描述】:
SELECT REGEXP_Replace('hello', '[l]', ''); 

如何编写我的正则表达式以仅替换 'l' 的第一个实例

【问题讨论】:

    标签: mysql regex mariadb


    【解决方案1】:

    使用带有否定字符类和锚点的捕获组:

    SELECT REGEXP_REPLACE('hello', '^([^l]*)l', '\\1'); 
    

    请参阅regex demo

    详情

    • ^ - 字符串开头
    • ([^l]*) - Capture group 1 捕获除 l 之外的 0+ 个字符
    • l - 一个文字字母 l,只是匹配而不被捕获。

    替换模式包含一个backreference\1,它引用第1组中包含的值,即不是l的任何文本,直到第一个l

    【讨论】:

    • 你能解释一下正则表达式吗?
    • 我添加了模式解释和一些指向正则表达式信息参考的链接。
    猜你喜欢
    • 1970-01-01
    • 2012-01-26
    • 2019-10-15
    • 1970-01-01
    • 2012-04-06
    • 1970-01-01
    • 1970-01-01
    • 2018-01-12
    • 2015-04-11
    相关资源
    最近更新 更多