Oracle REGEXP_INSTR() 函数

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

REGEXP_INSTR 是 Oracle 的字符串函数。 它是 INSTR 函数的扩展。 此函数用于在字符串中进行模式匹配。

语法

参数

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

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

描述
^匹配字符串的开头。 如果与“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_INSTR() Function

示例 2


Oracle String REGEXP_INSTR() Function

示例 3


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