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 正则函数/