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}