首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在PostgreSQL中使用正则表达式提取字符串的一部分

在PostgreSQL中使用正则表达式提取字符串的一部分
EN

Stack Overflow用户
提问于 2019-08-27 15:15:49
回答 1查看 77关注 0票数 4

我想提取first_namesecond_name字符串,但是使用这个正则表达式只能得到first_name字符串。

代码语言:javascript
复制
SELECT
   SUBSTRING (
      'a:2:{i:0;s:14:"first_name";i:1;s:15:"second_name";}',
      '\"[^\"]*\" '
   ) as obs_regex

如何修改我的正则表达式以获得first_name second_name结果?

谢谢你

EN

回答 1

Stack Overflow用户

发布于 2019-08-27 15:19:21

您可以使用g标志匹配多个匹配项,并且需要使用捕获组来获取不带引号的值:

代码语言:javascript
复制
SELECT
   REGEXP_MATCHES (
      'a:2:{i:0;s:14:"first_name";i:1;s:15:"second_name";}',
      '"([^"]*)"', 'g'
   ) as obs_regex

结果:

要获得连接在一起的匹配字符串,需要使用array_to_stringregexp_matches结果“转换”成一个数组

代码语言:javascript
复制
SELECT ARRAY_TO_STRING (
 ARRAY (
   SELECT REGEXP_MATCHES (
      'a:2:{i:0;s:14:"first_name";i:1;s:15:"second_name";}',
      '"([^"]*)"', 'g'
   )
 ), ' ') as obs_regex

结果:

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57669480

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档