SQL 正则函数
1. 正则函数概述
Oracle 提供了以下正则函数:
REGEXP_LIKE
:用于匹配字符串,通常作为WHERE
条件。REGEXP_REPLACE
:用于替换匹配到的字符。REGEXP_SUBSTR
:用于截取匹配到的字符。REGEXP_INSTR
:用于返回匹配字符的位置。
2. REGEXP_LIKE
:匹配字符串
REGEXP_LIKE
用于判断字符串是否匹配指定的正则表达式。
示例:
1 |
|
正则表达式说明:
^
:匹配字符串的开头。$
:匹配字符串的结尾。.
:匹配任意单个字符。*
:匹配前面的字符 0 次或多次。\d
:匹配数字。{4}
:匹配前面的字符恰好 4 次。[a-zA-Z]
:匹配任意字母。i
:不区分大小写。
3. REGEXP_INSTR
:返回匹配字符的位置
REGEXP_INSTR
用于返回匹配字符的位置。
示例:
1 |
|
参数说明:
- 第 1 个参数:源字符串。
- 第 2 个参数:正则表达式。
- 第 3 个参数:开始查找的位置。
- 第 4 个参数:查找第几个匹配项。
- 第 5 个参数:返回匹配项的开始位置(0)或下一个字符的位置(1)。
4. REGEXP_REPLACE
:替换匹配字符
REGEXP_REPLACE
用于替换匹配到的字符。
示例:
1 |
|
参数说明:
- 第 1 个参数:源字符串。
- 第 2 个参数:正则表达式。
- 第 3 个参数:替换的字符串。
- 第 4 个参数:开始查找的位置。
- 第 5 个参数:替换第几个匹配项。
5. REGEXP_SUBSTR
:截取匹配字符
REGEXP_SUBSTR
用于截取匹配到的字符。
示例:
1 |
|
参数说明:
- 第 1 个参数:源字符串。
- 第 2 个参数:正则表达式。
- 第 3 个参数:开始查找的位置。
- 第 4 个参数:截取第几个匹配项。
6. 综合示例
以下是一些综合示例,展示了正则函数的实际应用。
(1)查找员工姓名中包含 “S” 和 “T” 的员工
1 |
|
(2)替换员工姓名中的非字母字符
1 |
|
(3)截取字符串中的数字
1 |
|
总结
REGEXP_LIKE
:用于匹配字符串。REGEXP_INSTR
:用于返回匹配字符的位置。REGEXP_REPLACE
:用于替换匹配字符。REGEXP_SUBSTR
:用于截取匹配字符。
SQL 正则函数
https://blog.pangcy.cn/2018/09/06/数据库相关/Oracle/SQL 语法/SQL 正则函数/