§ Oracle兼容-函数-REGEXP_COUNT()函数
§ 1. 语法
REGEXP_COUNT ( source_char, pattern [, position [, match_param]])
1
§ 2. 定义和用法
REGEXP_COUNT
函数的作用是统计正则匹配字符串 pattern
在 字符串 source_char
中出现的次数。如果未找到匹配结果,则返回0。
source_char
:需要查找匹配的字符串。pattern
:正则表达式或字符文本。position
:正整数,查找匹配开始的位置。match_param
:正则匹配规则参数,支持下面几个可选值(如果未设置该参数则系统默认不区分大小写):c
:区分大小写的匹配。i
:不区分大小写的匹配,默认匹配规则。m
:多行模式。识别字符串中的行终止符。默认行为是仅在字符串表达式的开头和结尾匹配行终止符。n
: 采用句点.
匹配行终止符。默认是.
匹配在行尾停止。n
: 采用句点.
匹配行终止符。如果省略该参数,则句点将不匹配换行符。u
:仅匹配 Unix 的行结尾。只有换行符被识别为以 ., ^ 和 $ 结尾的行。
§ 3. 示例
-- 1.参数match_param区分大小写
greatsql> SELECT REGEXP_COUNT('GreatSQL', 'greatsql', 1, 'c');
+----------------------------------------------+
| REGEXP_COUNT('GreatSQL', 'greatsql', 1, 'c') |
+----------------------------------------------+
| 0 |
+----------------------------------------------+
-- 2.参数match_param不区分大小写
greatsql> SELECT REGEXP_COUNT('GreatSQL', 'greatsql', 1, 'i');
+----------------------------------------------+
| REGEXP_COUNT('GreatSQL', 'greatsql', 1, 'i') |
+----------------------------------------------+
| 1 |
+----------------------------------------------+
-- 3.表达式匹配个数,区分大小写
greatsql> SELECT REGEXP_COUNT('GreatSQL', '[a-z]', 1, 'c');
+-------------------------------------------+
| REGEXP_COUNT('GreatSQL', '[a-z]', 1, 'c') |
+-------------------------------------------+
| 4 |
+-------------------------------------------+
-- 4.表达式匹配个数,不区分大小写
greatsql> SELECT REGEXP_COUNT('GreatSQL', '[a-z]', 1, 'i');
+-------------------------------------------+
| REGEXP_COUNT('GreatSQL', '[a-z]', 1, 'i') |
+-------------------------------------------+
| 8 |
+-------------------------------------------+
5.多行模式,以.作为换行匹配,
greatsql> SELECT REGEXP_COUNT('fo
fa
^
$
^', '.',1,'mn');
+------------------------------------------+
| 12 |
+------------------------------------------+
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
扫码关注微信公众号