MariaDB正则表达式替换仅第一个字符实例。

3
SELECT REGEXP_Replace('hello', '[l]', ''); 

我该如何编写正则表达式以仅替换第一个'l'实例?
1个回答

6
使用具有否定字符类和锚定的捕获组:
SELECT REGEXP_REPLACE('hello', '^([^l]*)l', '\\1'); 

请看正则表达式演示细节
  • ^ - 字符串开头
  • ([^l]*) - 捕获组 1 捕获除了字符 l 以外的任意数量字符
  • l - 匹配字面上的字符 l,但不进行捕获。
替换模式中包含一个反向引用 \1,它引用了捕获组 1 中包含的值,即第一个 l 之前的任何文本。

请问您能解释一下正则表达式吗? - Andrew Kilburn
1
我添加了模式说明和一些链接到regular-expressions.info参考资料。 - Wiktor Stribiżew

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接