regex - postgresql:如何连接两个 regexp_matches()

标签 regex postgresql

我正在尝试从 123A America、234B Britania 等名称中提取整数和字符。 我只想要号码和附加的字母(即 123A)。 我正在使用 regexp_matches(name, '(\d+)(\D)') 结果为:

{123,A}, {456,B}

我想使用连接,使用两个不同的函数获取数组的第一个元素和第二个元素 (regexp_matches(name, '(\d+)(\D)' )) [1] || (regexp_matches(name, '(\d+)(\D)' )) [2]

但它会产生一个错误: 错误:函数和运算符最多只能接受一个集合参数

如何将两个元素作为一个字符串获取?

最佳答案

您不必将要搜索的两个项目作为不同的集合获取,只需将它们作为一个集合获取即可。删除 \d+\D 之间的 )( ,这将返回一个包含您要查找的整个字符串的集合。

结果 - regexp_matches('123A America, 234B Britania', '(\d+\D)' )

这只会找到第一个匹配项。要获取所有匹配的子字符串,请使用 g 标志 - regexp_matches('123A America, 234B Britania', '(\d+\D)', 'g')

关于regex - postgresql:如何连接两个 regexp_matches(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19637811/

相关文章:

Javascript正则表达式难以替换

Python Regex 查找 1000 美元或更多的金额

ruby-on-rails - 如何使用 Rails 在 PostgreSQL 中创建日期范围

postgresql - 使 Postgres 查询更快。更多索引?

postgresql - 从 PostgreSQL 中选择列组合的间隔/第一次和最后一次出现

python - 谷歌应用引擎 : How to choose regular expression for app. yaml

javascript - 匹配 Mongoose 中带或不带 http(s) 或 www 的任何 url

python - 像在spss中一样在sql中制作数据透视表

qt - 无法创建查询 COPY PostgreSQL PQSQL 驱动程序

java - 测试 Java 正则表达式appendReplacement()