【发布时间】:2017-03-20 17:53:55
【问题描述】:
SELECT REGEXP_Replace('hello', '[l]', '');
如何编写我的正则表达式以仅替换 'l' 的第一个实例
【问题讨论】:
SELECT REGEXP_Replace('hello', '[l]', '');
如何编写我的正则表达式以仅替换 'l' 的第一个实例
【问题讨论】:
使用带有否定字符类和锚点的捕获组:
SELECT REGEXP_REPLACE('hello', '^([^l]*)l', '\\1');
请参阅regex demo。
详情:
^ - 字符串开头([^l]*) - Capture group 1 捕获除 l 之外的 0+ 个字符
l - 一个文字字母 l,只是匹配而不被捕获。替换模式包含一个backreference\1,它引用第1组中包含的值,即不是l的任何文本,直到第一个l。
【讨论】: