mysql - MariaDB Regex 仅替换字符的第一个实例

标签 mysql regex mariadb

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

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

最佳答案

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

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

参见 regex demo .

详细信息:

  • ^ - 字符串的开始
  • ([^l]*) - Capture group 1 捕获除 l
  • 之外的 0+ 个字符
  • l - 刚刚匹配但未捕获的字面字母 l

替换模式包含 backreference \1 指的是第 1 组中包含的值,即第一个 l 之前不是 l 的任何文本。

关于mysql - MariaDB Regex 仅替换字符的第一个实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40464319/

相关文章:

php - 如何使用其他表中的外键删除具有主键的行?

regex - 为什么我的正则表达式与 Visual Studio 代码中的空行/回车符匹配?

对于 10GB 数据库大小的 1 亿条记录,带索引的 MySQL 查询仍然很慢

mariadb - SQL - 压缩具有连续 ID 的行

mysql - 错误: Insert After Trigger

mysql - 如何获取 MariaDB 的当前值?

mysql - 如何使用 GROUP_CONCAT 返回 JSON_ARRAY

php - PCRE 能否测试主题中任何位置(字符类)出现的总数?

r - 列名称的 grep 模式

mysql - WordPress:将 MySQL 数据库导入到 MariaDB