关于正则表达式在Oracle中使用的教程
正则表达式被广泛使用在软件,包括*nix(Linux,Unix,等等),HP等操作系统,PHP,C #,java等开发环境。
本文主要介绍正则表达式在oracle中的应用。
Oracle是密不可分的使用正则表达式从这4个功能:regexp_like,regexp_substr,regexp_instr,regexp_replace。
regexp_like
这个函数只能用于条件表达式,类似于,但正则表达式用于匹配。
查询包含小写字母或数字的所有记录。
SELECT * FROM诺昕壹在regexp_like(价值,^({ } { } | 0-9 A-Z + +)$);
regexp_substr
这个功能类似于函数,用来接字符子串在汇合的正则表达式,它的定义如下
功能regexp_substr(字符串、模式、位置、发生、修正)
字符串输入字符串
-模式正则表达式
位置标记与前几个字符的正则表达式匹配。(默认值为1)
发生标识若干匹配组。(默认值为1)
-修饰值范围:
i:在案件和案件不敏感;
c:病例和病例敏感性;
N:点不匹配换行符;
M:多行模式;
x:扩展模式,忽略正则表达式中的空白字符。
下面是一些例子
-检索中间的数字
选择regexp_substr(A,{ }test_reg_substr 0-9)从哪里regexp_like(A,{ } + 0-9);
-检索中间的数字(从第一个字母匹配,找到第二个匹配项)
选择NVL(regexp_substr(A,{ } + 0-9,1, 2),从test_reg_substr -)
在regexp_like(A,{ } + 0-9);
regexp_instr
这一功能,类似的仪器,用于校准一个符合正则表达式的字符串的起始位置,对regexp_instr功能在Oracle数据库的语法是
regexp_instr(source_char模式{,},{ }的位置,发生
{ return_option {,match_parameter }}}}})
对source_char搜索值的字符表达式
-模式正则表达式
-位置可选。在字符串中搜索起始位置。如果省略,默认值是1,这是字符串中的第一个位置。
-可选。它是模式字符串中的n个匹配位置。如果省略,默认值是1。
- return_option随意指定的Oracle返回的位置,
0然后Oracle将返回出现的第一个字符的位置,这是默认值,
1个Oracle返回字符后返回的位置。
-价值match_parameter范围:
i:在案件和案件不敏感;
c:病例和病例敏感性;
N:点不匹配换行符;
M:多行模式;
x:扩展模式,忽略正则表达式中的空白字符。
下面是一些例子
-查找字符串中第一个E字的位置
返回到2
选择regexp_instr(你好itmyhome,e)从双;
1启动位置2是第二匹配搜索,和0是return_option
-返回C的第一个字符位置是区分大小写的,所以返回13。
选择regexp_instr(我是itmyhome ',是',1, 2, 0,C)的双;
—
选择regexp_instr(世界充满爱',' ',1, 1, 0,' ')从双;
-匹配多种备选方案
选择regexp_instr('itmyhome ',' |我| O | E | U)从双;
regexp_replace
这一功能,类似的来代替,代替一个符合正则表达式的字符串,并对regexp_replace功能在Oracle数据库的语法是
regexp_replace(source_char,模式replace_string {,}
{ { {位置,发生,match_parameter } } })}
对source_char搜索值的字符表达式
-模式正则表达式
- replace_string可选,匹配模式将由replace_string字符串替换。
如果replace_string参数被忽略,所有匹配的模式将被删除并返回结果字符串。
-位置可选。在字符串中搜索起始位置。如果省略,默认值是1。
-它是模式字符串中的n个匹配位置。如果省略,默认值是1。
- match_parameter
i:在案件和案件不敏感;
c:病例和病例敏感性;
N:点不匹配换行符;
M:多行模式;
x:扩展模式,忽略正则表达式中的空白字符。
下面是一些例子
字符串替换
——运气是我的网络ID
选择regexp_replace('itmyhome是我的网络ID( *),^ ','luck)从双;
指定的 D数例将由#字符替换
结果:#,#,和数字在这个例子# #
选择regexp_replace(2,5和10的数字,在这个例子中, D双,#);
总结
以上就是本文的全部内容。本文还存在许多不足之处。希望本文对大家的学习或工作有一定的参考价值。如果有任何疑问,您可以留言交流,谢谢您的支持。