【发布时间】:2021-09-19 08:09:56
【问题描述】:
到目前为止我对 PostgreSQL 模式匹配的了解:
- 提取数字的第一个连续部分。
SELECT SUBSTRING('X2Y1234445Z2', '([0-9]+)');
- 检查字符串是否包含子字符串模式:
cuid:。
select ' cuid: 7812789sioeudkl290380 cuid: 1812789' ilike '%cuid: %';
- 但以下返回 false。
select 'cuid: 7812789sioeudkl290380 cuid: 1812789' ilike '%cuid: [0-9]+%';
所以对于字符串:'cuid:7812789sioeudkl290380 cuid:1812789',expect提取cuid:7812789和 cuid: 1812789。假设在 cuid: 之前和之后有任意数量的空格。
编辑:
SELECT SUBSTRING(' cuid: 7812789sioeudkl290380 cuid: 1812789', '\s*cuid\s*[0-9]+');
但这种方式没有任何回报。
【问题讨论】:
-
它什么也不返回,因为你在
cuid之后有一个:,并且在你的正则表达式('\s*cuid\s*[0-9]+')中你没有:。
标签: regex postgresql