PostgreSQL:如何从特殊字符开始从varchar字段中删除?(regexp_replace)

时间:2016-07-07 10:16:19

标签: postgresql regexp-replace

我希望在首次出现角色后删除所有内容' M'在VARCHAR字段中(包括)。

所以SELECT regexp_replace('The world Mine is mine')

应该产生:'The world '

这相当于

SELECT left('The world Mine is mine',INSTR('The world Mine is mine','M',1,1)-1)

但是,如何在没有leftinstr的情况下实现这一目标?很高兴回复。

1 个答案:

答案 0 :(得分:0)

您可以使用捕获组:

SELECT regexp_replace('The world Mine is mine', '(.*)(M.*)', '\1')

返回

regexp_replace
--------------
The world     

正则表达式相当昂贵,使用left()instr()最有可能更快。