Oracle的REGEXP_SUBSTR函数简单用法

REGEXP_SUBSTR延伸SUBSTR函数的功能,让你搜索一个正则表达式模式字符串。

这也类似于REGEXP_INSTR,而是返回子字符串的位置,它返回的子字符串本身。

语法

Oracle数据库中的REGEXP_SUBSTR函数的语法是:

REGEXP_SUBSTR(source_char, pattern [, position [, occurrence [, match_parameter ]]])

参数

source_char

搜索字符串。可以是任意的数据类型char,VARCHAR2,nchar,CLOB,NCLOB类型

pattern

正则表达式

Value Description
^ Matches the beginning of a string. If used with a match_parameter of ‘m’, it matches the start of a line anywhere within expression.
$ Matches the end of a string. If used with a match_parameter of ‘m’, it matches the end of a line anywhere within expression.
* 匹配零个或多个.
+ 匹配一个或多个出现.
? 匹配零次或一次出现.
. 匹配任何字符,除了空.
| Used like an "OR" to specify more than one alternative.
[ ] Used to specify a matching list where you are trying to match any one of the characters in the list.
[^ ] Used to specify a nonmatching list where you are trying to match any character except for the ones in the list.
( ) Used to group expressions as a subexpression.
{m} Matches m times.
{m,} Matches at least m times.
{m,n} Matches at least m times, but no more than n times.
\n n is a number between 1 and 9. Matches the nth subexpression found within ( ) before encountering \n.
[..] Matches one collation element that can be more than one character.
[::] Matches character classes.
[==] Matches equivalence classes.
\d 匹配一个数字字符.
\D 匹配一个非数字字符.
\w 匹配包括下划线的任何单词字符.
\W 匹配任何非单词字符.
\s 匹配任何空白字符,包括空格、制表符、换页符等等.
\S 匹配任何非空白字符.
\A Matches the beginning of a string or matches at the end of a string before a newline character.
\Z Matches at the end of a string.
*? Matches the preceding pattern zero or more occurrences.
+? Matches the preceding pattern one or more occurrences.
?? Matches the preceding pattern zero or one occurrence.
{n}? Matches the preceding pattern n times.
{n,}? Matches the preceding pattern at least n times.
{n,m}? Matches the preceding pattern at least n times, but not more than m times.

position

可选。搜索在字符串中的开始位置。如果省略,默认为1,这是第一个位置的字符串。

occurrence

可选。它是模式字符串中的第n个匹配位置。如果省略,默认为1。

match_parameter

可选。它允许你修改regexp_substr功能匹配的行为。它可以是以下的组合:

Value Description
‘c’ 区分大小写的匹配.
‘i’ 不区分大小写的匹配.
‘n’ Allows the period character (.) to match the newline character. By default, the period is a wildcard.
‘m’ expression is assumed to have multiple lines, where ^ is the start of a line and $ is the end of a line, regardless of the position of those characters in expression. By default, expression is assumed to be a single line.
‘x’ Whitespace characters are ignored. By default, whitespace characters are matched like any other character.

Examples

找出匹配的数字

SELECT REGEXP_SUBSTR (‘hello my phone is 520 ‘, ‘[0-9]+‘) FROM dual; --520

下面这个例子返回指定第三次出现的字符

SELECT REGEXP_SUBSTR (‘i like beijing tiananmen‘, ‘(\S*)(\s)‘, 1, 3)
FROM dual;    --beijing

作者:itmyhome

时间: 2025-01-07 08:47:02

Oracle的REGEXP_SUBSTR函数简单用法的相关文章

Oracle的REGEXP_INSTR函数简单用法

REGEXP_INSTR函数让你搜索一个正则表达式模式字符串.函数使用输入字符集定义的字符进行字符串的计算. 它返回一个整数,指示开始或结束匹配的子位置,这取决于return_option参数的值.如果没有找到匹配,则函数返回0. 语法 Oracle数据库中的REGEXP_INSTR函数的语法是: REGEXP_INSTR (source_char, pattern [, position [, occurrence [, return_option [, match_parameter ] ]

Oracle的substr函数简单用法

substr(字符串,截取开始位置,截取长度) //返回截取的字符串(包含开始位置) select substr('HelloWorld',0,3) value from dual; --返回结果为 Hel select substr('HelloWorld',1,3) value from dual; --返回结果为 Hel ,0和1都是表示从第一个字符还是截取 select substr('HelloWorld',6,5) value from dual; --返回结果为 World sel

【转】oracle的substr函数的用法

[转]oracle的substr函数的用法 oracle的substr函数的用法 取得字符串中指定起始位置和长度的字符串   substr( string, start_position, [ length ] ) 如:     substr('This is a test', 6, 2)     would return 'is'     substr('This is a test', 6)     would return 'is a test'     substr('TechOnThe

Oracle中REGEXP_SUBSTR函数(转)

Oracle中REGEXP_SUBSTR函数 Oracle中REGEXP_SUBSTR函数的使用说明: 题目如下:在oracle中,使用一条语句实现将'17,20,23'拆分成'17','20','23'的集合. REGEXP_SUBSTR函数格式如下:function REGEXP_SUBSTR(String, pattern, position, occurrence, modifier)__srcstr :需要进行正则处理的字符串__pattern :进行匹配的正则表达式__positio

select函数简单用法例程

在<The Linux Programming Interface>的 63.2.1 The select() System Call中讲述了 select() 函数的用法 下面是原型: 1 #include <sys/time.h> /* For portability */ 2 #include <sys/select.h> 3 int select(int nfds, fd_set *readfds, fd_set *writefds, fd_set *excep

Oracle的REGEXP INSTR函数简单用法

REGEXP_INSTR函数让你搜索一个正则表达式模式字符串.函数使用输入字符集定义的字符进行字符串的计算. 它返回一个整数,指示开始或结束匹配的子位置,这取决于return_option参数的值.如果没有找到匹配,则函数返回0. 语法 Oracle数据库中的REGEXP_INSTR函数的语法是: REGEXP_INSTR (source_char, pattern [, position [, occurrence [, return_option [, match_parameter ] ]

【Oracle】Oracle中dump函数的用法

一.函数标准格式: DUMP(expr[,return_fmt[,start_position][,length]]) 基本参数时4个,最少可以填的参数是0个.当完全没有参数时,直接返回null.另外3个参数也都有各自的默认值: expr:这个参数是要进行分析的表达式(数字或字符串等,可以是各个类型的值) return_fmt:指返回参数的格式,有5种用法: 1)8:以8进制返回结果的值 2)10:以10进制返回结果的值(默认) 3)16:以16进制返回结果的值 4)17:以单字符的形式返回结果

Oracle的REGEXP_INSTR函数简单使用方法

REGEXP_INSTR函数让你搜索一个正則表達式模式字符串. 函数使用输入字符集定义的字符进行字符串的计算. 它返回一个整数,指示開始或结束匹配的子位置.这取决于return_option參数的值.假设没有找到匹配.则函数返回0. 语法 Oracle数据库中的REGEXP_INSTR函数的语法是: REGEXP_INSTR (source_char, pattern [, position [, occurrence [, return_option [, match_parameter ]

Oracle中Table函数简单应用实例

说明 表函数可接受查询语句或游标作为输入参数,并可输出多行数据. 该函数可以平行执行,并可持续输出数据流,被称作管道式输出. 应用表函数可将数据转换分阶段处理,并省去中间结果的存储和缓冲表. 优势 1.一些复杂的公用信息,但是建立视图又实现不了,此时可以考虑使用管道输出. 2.涉及运算较多,写个简单SQL实现起来较为麻烦,用table实现就ok了 实例 1.前期工作: create or replace type ty_row as object ( col1 varchar2(36), col