Oracle REGEXP_SUBSTR() 函数

2025年3月17日 | 阅读 3 分钟

REGEXP_SUBSTR 是 Oracle 的字符串函数。它是 SUBSTR 函数的扩展。此函数用于从字符串中的子字符串进行模式匹配。

语法

参数

String : 用于获取指定模式的字符串。

模式: 正则表达式模式匹配信息。 其中一些如下:

描述
^匹配字符串的开头。 如果与“m”的 match_parameter 一起使用,则它匹配表达式中任何位置的行的开头。
$匹配字符串的结尾。 如果与“m”的 match_parameter 一起使用,则它匹配表达式中任何位置的行的结尾。
*匹配零个或多个出现次数。
+匹配一个或多个出现次数。
?匹配零个或一个出现次数。
.匹配除 NULL 之外的任何字符。
|用作“OR”以指定多个替代方案。
[ ]用于指定匹配列表,您试图匹配列表中任何一个字符。
[^ ]用于指定非匹配列表,您试图匹配除列表中字符之外的任何字符。
( )用于将表达式分组为子表达式。
{m}匹配 m 次。
{m,}至少匹配 m 次。
{m,n}至少匹配 m 次,但不超过 n 次。
\nn 是一个介于 1 和 9 之间的数字。匹配在遇到 \n 之前在 ( ) 中找到的第 n 个子表达式。
[..]匹配一个整理元素,该元素可以包含多个字符。
[::]匹配字符类。
[==]匹配等价类。
\d匹配数字字符。
\D匹配非数字字符。
\w匹配单词字符。
\W匹配非单词字符。
\s匹配空白字符。
\S匹配非空白字符。
\A匹配字符串的开头或匹配换行符之前的字符串的结尾。
\Z匹配字符串的结尾。
*?匹配前面模式零个或多个出现次数。
+?匹配前面模式一个或多个出现次数。
??匹配前面模式零个或一个出现次数。
{n}?匹配前面模式 n 次。
{n,}?至少匹配前面模式 n 次。
{n,m}?至少匹配前面模式 n 次,但不超过 m 次。

start_position : 它是可选的。它是从给定字符串中匹配模式的起始位置。

nth_appearance : 它是可选的。它是要从给定字符串中完成模式匹配的第 n 个位置。

match_parameter : 它是可选的。它用于匹配 REGEXP_INSTR 函数的行为。其中一些如下。

描述
'c'执行区分大小写的匹配。
'i'执行不区分大小写的匹配。
'n'允许句点字符 (.) 匹配换行符。 默认情况下,句点是通配符。
'm'假定表达式具有多行,其中 ^ 是一行的开头,$ 是一行的结尾,而与这些字符在表达式中的位置无关。 默认情况下,假定表达式是单行。
'x'空格字符将被忽略。 默认情况下,空格字符的匹配方式与其他字符相同。

Subexpression : 它是可选的。当模式具有子表达式时使用。

返回

它返回一个字符串值

示例 1


Oracle String REGEXP_SUBSTR() Function
下一主题Oracle 字符串