§ 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

greatsql-wx