[可选] 一个或多个单字符标志,可修改正则表达式
模式
与
字符串表达式
匹配的方式:
b
: 将字符串视为二进制八位字节数,而不是 UTF-8 字符。
c
(默认值): 强制匹配区分大小写。
i
: 强制匹配不区分大小写。
m
: 将要匹配的字符串视为多行。使用此修饰符,可使行头 (
^
) 和行尾 (
$)
的正则表达式运算符与字符串内的换行符 (
\n
) 相匹配。如果没有
m
修饰符,行头和行尾运算符仅与字符串的开头和结尾相匹配。
n
: 将正则表达式运算符 (
.
) 与换行符 (
\n
) 相匹配。默认情况下,
.
运算符可与除换行符以外的任何字符相匹配。
x
: 将注释添加到正则表达式。
x
修饰符可导致函数忽略正则表达式中所有未经转义的空格字符和注释。注释以哈希 (
#
) 字符开始,以换行符 (
\n
) 结束。在字符串中匹配的正则表达式中的所有空格都必须使用反斜杠 (
\\
) 字符进行转义。
计算指定字符串 (
a man, a plan, a canal: Panama
) 中子字符串
an
的出现次数:
=> SELECT REGEXP_COUNT('a man, a plan, a canal: Panama', 'an');
REGEXP_COUNT
--------------
(1 row)
自第五个字符开始,查找子字符串
an
的出现次数。
=> SELECT REGEXP_COUNT('a man, a plan, a canal: Panama', 'an',5);
REGEXP_COUNT
--------------
(1 row)
查找包含小写字符且后跟
an
的子字符串的出现次数:
=> SELECT REGEXP_COUNT('a man, a plan, a canal: Panama', '[a-z]an');
REGEXP_COUNT
--------------
(1 row
REGEXP_COUNT 指定
i
修饰符,因此忽略大小写:
=> SELECT REGEXP_COUNT('a man, a plan, a canal: Panama', '[a-z]an', 1, 'i');
REGEXP_COUNT
--------------