PostgreSQL regexp_match() 函数使用指南

PostgreSQL regexp_match() 函数从一个字符串中返回指定的正则表达式的第一个匹配的结果。

regexp_match() 函数使用 POSIX 正则表达式。

regexp_match() 语法

这里是 PostgreSQL regexp_match() 函数的语法:

regexp_match(string, regex[, flags])  text[]

参数

string
必需的。 一个字符串。
regex
必需的。 正则表达式。
flags
可选的。 正则表达式的匹配模式。

返回值

PostgreSQL regexp_match() 函数返回一个字符串数组,它是一个字符串中使用指定的正则表达式的第一次匹配结果。

如果字符串中没有包含和正则匹配的内容,则此函数返回 NULL

如果正则表达式中包含分组,那么每个分组匹配的内容将成为返回数组的一个元素。

regexp_match() 函数不能使用 g 标识,否则将引发一个错误: “错误: regexp_match() 不支持 “global"选项 提示: 改用regexp_matches函数”。

regexp_match() 示例

这个示例演示了如何使用 regexp_match() 函数从字符串中返回由正则表达式捕获的结果:

SELECT regexp_match('Abcd abCd aBcd', 'ab.');
 regexp_match
--------------
 {abC}

这里, 在 POSIX 正则表达式中,. 意味着任何一个字符。

您可以在参数 flags 中使用 i 标识在使用正则表达式匹配的时候忽略大小写。比如:

SELECT regexp_match('Abcd abCd aBcd', 'ab.', 'i');
 regexp_match
--------------
 {Abc}

您可以在正则表达式中使用多个分组,比如:

SELECT regexp_match('Abcd abCd aBcd', '(a.)(c.)', 'i');
 regexp_match
--------------
 {Ab,cd}