我正在尝试从 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/