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

PostgreSQL如何通过正则提取字符串中排除逗号的前两个单词

问题原因

你当前使用的正则会完整匹配「单词+非单词字符+单词」的整段内容,没有单独提取纯单词部分,因此返回的匹配结果自带逗号,数组中仅包含Hi, I一个元素。
正则中\w+匹配连续的字母数字下划线(即单词),\W+匹配连续的非单词字符(包括逗号、空格等分隔符),将需要提取的单词部分用括号包裹为捕获组,就可以单独返回纯单词内容。

解决方案

方案1:返回包含两个纯单词的数组

SELECT regexp_matches('Hi, I am Harry Potter', '^(\w+)\W+(\w+)');

返回结果:{Hi,I}

方案2:返回空格分隔的单个字符串Hi I

将匹配到的数组用空格拼接即可:

SELECT array_to_string(regexp_matches('Hi, I am Harry Potter', '^(\w+)\W+(\w+)'), ' ');

返回结果:Hi I


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 14:09:02