REGEXP_COUNT
📄字数 700
👁️阅读量 加载中...
功能描述
计算正则表达式在字符串中匹配次数。
语法格式
sql
REGEXP_COUNT(expr1,expr2[,expr3[,expr4]])
输入参数
expr1
:源字符串,VARCHAR
类型。expr2
:正则表达式,VARCHAR
类型。expr3
:可选参数,开始匹配的字符位置(默认为1
),INTEGER
类型。expr4
:可选参数,匹配模式,VARCHAR
类型,支持以下匹配模式:i
:大小写不敏感。c
:大小写敏感。n
:允许句点(.
)作为通配符去匹配换行符,如果省略该参数,则句点将不匹配换行符。m
:将源串视为多行,即将^
和$
分别看作源串中任意位置任何行的开始和结束,而不是仅仅看作整个源串的开始或结束,如果省略该参数,则将源串看作一行。x
:忽略空格字符,默认情况下,空格字符与自身相匹配。
提示
- 如果指定了多个相互矛盾的匹配选项,将使用最后一个选项。例如,如果指定
'ic'
,将使用区分大小写的匹配;如果指定的选项不属于上述范围,则报错。 - 如果不指定大小写敏感,是否区分大小写依照系统参数
CATA_CASE_SENSITIVE
的值确定(此参数的默认值区分大小写)。
输出结果
输出结果为INTEGER
类型,任意输入参数为NULL
或expr1
和expr2
任意一个为空串,输出结果为NULL
,若参数expr3
为负,报错[E10065 L1 C8] 函数的第3个参数错误
。
示例
SQL
-- 示例1:查找'a'在'asdasadaa'中出现的次数。
SQL> SELECT REGEXP_COUNT('asdasadaa','a') FROM dual;
+-------+
| EXPR1 |
+-------+
| 5 |
+-------+
-- 示例2:查找'a'在'AaAaaB'中出现的次数,大小写敏感。
SQL> SELECT REGEXP_COUNT('AaAaaB', 'a', 1, 'c') FROM dual;
+-------+
| EXPR1 |
+-------+
| 3 |
+-------+