• 点击这里给我发消息
  • 点击这里给我发消息
设为首页 \ 加入收藏    
您现在的位置: 主页 > 技术支持 >
技术支持
新闻资讯
产品中心
解决方案
成功案例
技术支持
关于我们
联系我们
联系我们
西安卓识信息科技有限公司
电话:029-81323040
地址:陕西省西安市大庆路15号
主页:http://www.soft-zs.com
联系人:夏先生
电话:18992884096
QQ:39260460
 
技术支持
标题: oracle中的正则表达式
[发表时间: 2022-04-22 16:41 ] |[浏览:次]

Oracle使用正则表达式离不开这4个函数:

1 、regexp_substr

2、 regexp_instr

3 、regexp_replace

4 、regexp_like

关于正则表达式中的元字符。如下图所示

 

Oracle 数据库正则表达式中的 POSIX 元字符

元字符是具有特殊意义的字符,如通配符字符、重复字符、非匹配字符或一个字符范围。

可以在与函数匹配的模式中使用多个预定义的元字符符号。

符号 说明
*

匹配零个或多个匹配项

|

用于指定选择性匹配项的选择性运算符

^/$
     

匹配行的开头和结尾

[]

用于匹配列表(匹配该列表中的任何表达式)的方括号表达式

[^exp]

如果脱字符位于方括号内部,则对表达式取非。

{m}

精确匹配 m 次

{m,n}

至少匹配 m 次,但不超过 n 次

[: :]

指定一个字符类并匹配该类中的任何字符

\

可以有四种不同的含义:(1) 表示其自身;(2) 引用下一个字符;(3) 引入一个运算符;(4) 不执行任何操作

+

匹配一个或多个匹配项

 

匹配零个或一个匹配项

.

匹配所支持字符集中的任何字符(NULL 除外)

()

对表达式进行分组(视作一个子表达式)

\n

向后引用表达式

[==]
     

指定等价类

[..]
     

指定一个对照元素(如多字符元素)

Perl 正则表达式扩展

除了 POSIX 标准以外,Oracle 还支持受 Perl 影响的常见元字符。如果您是一位生命科学开发人员,并使用 Perl 对大型 DNA 和蛋白质数据库中存储的生物信息数据进行模式分析,则可以使用 SQL 正则表达式直接支持数据,而无需中间层。这可以提供更高效的解决方案。为 Perl 兼容性而添加的元字符包括:

运算符 说明
\d

匹配数字字符

\D

匹配非数字字符

\w

匹配单词字符

\W

匹配非单词字符

\s

匹配空白字符

\S

匹配非空白字符

\A

仅匹配字符串的开头

\Z

仅匹配字符串的结尾或者行结尾之前

\z

仅匹配字符串的结尾

匹配 0 次或更多次(非贪婪)

匹配 1 次或更多次(非贪婪)

匹配 0 次或 1 次(非贪婪)

{n} 

精确匹配 n 次(非贪婪)

{n,} 

至少匹配 n 次(非贪婪)

{n,m} 

至少匹配 n 次,但不超过 m 次(贪婪)

 

A、REGEXP_SUBSTR函数:指定符合条件的子串,类似于oracle的substr,不同之处在于模式匹配字符串支持。

语法格式:REGEXP_SUBSTR(srcstr, pattern [, position [, occurrence [, match_option]]])
srcstr:要解析的字符串
pattern:模式匹配字符串,当然是正则表达式咯

B、REGEXP_INSTR函数:返回符合条件的字符串首次出现的位置。看长相就知道和instr功能类似。

语法格式:REGEXP_INSTR(srcstr, pattern [, position [, occurrence[, return_option [, match_option]]]])
srcstr:搜索的源字符串

position:是搜索的起始位置
occurrence:是要搜索的匹配项
match_option:提供了更改默认匹配的选项。它可以包含以下一个或多个值:
“c”:使用区分大小写的匹配(默认值)
“i”:使用不区分大小写的匹配
“n”:允许匹配任何字符的运算符来匹配行符
“m”:将源字符串作为多行处理​

C、REGEXP_REPLACE函数:类似于replace函数的功能,把符合条件的字符串替换成指定的字符串。

语法格式:REGEXP_REPLACE(srcstr, pattern [,replacestr [, position [, occurrence [, match_option]]]])

D、REGEXP_LIKE函数:功能类似like运算符的函数,注意是函数哟。所以得按照函数的语法格式使用。

语法格式:REGEXP_LIKE(srcstr, pattern [,match_option])


 

+ 上一篇:SQL2008可疑数据库的一般性修复
+ 下一篇:没有了
 
西安卓识信息科技有限公司 版权所有【陕ICP备11007810号】