regexp_matches()
是一个系统函数,返回与 POSIX 正则表达式匹配的子字符串。
regexp_matches()
在 PostgreSQL 8.3 中添加。
用法
regexp_matches (string
text
,pattern
text
[,flags
text
] ) → setoftext
[]
通常建议至少提供一个标志,通常是 'g
',否则 regexp_matches()
的行为与 regexp_match()
完全相同(从 PostgreSQL 10 开始可用)。除了 'g
' 之外的标志列表可在 PostgreSQL 文档中找到:ARE 嵌入选项字母。
更改历史记录
- PostgreSQL 8.3
- 添加 (提交 9eb78bee)
示例
regexp_matches()
的基本用法示例
postgres=# SELECT regexp_matches('foobarboo', '.oo', 'g'); regexp_matches ---------------- {foo} {boo} (2 rows)
检索多个匹配项
postgres=# SELECT regexp_matches('foobarboo floobiloo', '(.oo).+?(.oo)', 'g'); regexp_matches ---------------- {foo,boo} {loo,loo} (2 rows)
请注意,在没有 'g
' 标志的情况下使用 regexp_matches()
等效于 regexp_match()
postgres=# SELECT regexp_match('foobarboo', '.oo'), regexp_matches('foobarboo', '.oo'); regexp_match | regexp_matches --------------+---------------- {foo} | {foo} (1 row)
参考
- PostgreSQL 文档: 其他字符串函数
- PostgreSQL 文档: POSIX 正则表达式