You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PostgreSQL正则表达式需求:获取分号后的所有内容

PostgreSQL正则提取分号后内容的解决方案

没问题,我来帮你搞定这个需求!针对你给出的字符串'1234;4567',用PostgreSQL的substring函数配合正确的正则表达式就能轻松得到分号后的内容。

基础实现代码

直接用下面的SQL语句就能得到你想要的'4567':

SELECT substring('1234;4567' from ';(.*)');

正则表达式解释

  • ;:精确匹配字符串中的分号分隔符
  • (.*):括号表示捕获组,.*会匹配分号之后的任意字符(包括空字符、特殊字符),PostgreSQL的substring函数默认会返回第一个捕获组匹配到的内容,正好就是我们需要的分号后的所有内容。

扩展场景处理

如果你的字符串可能存在多个分号(比如'abc;def;ghi'),上面的正则会返回从第一个分号开始到结尾的所有内容(也就是'def;ghi')。如果你需要提取最后一个分号之后的内容,可以调整正则为:

SELECT substring('abc;def;ghi' from ';([^;]*)$');

这里的[^;]*表示匹配零或多个非分号的字符,$表示匹配字符串结尾,这样就能精准捕获最后一个分号后的内容。

另外,如果字符串可能没有分号,substring会返回NULL,如果需要返回空字符串替代NULL,可以用COALESCE函数处理:

SELECT COALESCE(substring('无分号字符串' from ';(.*)'), '');

内容的提问来源于stack exchange,提问作者Tymon

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.12 03:43:52