
时间:2015-06-28 00:00 来源:IT猫扑网|http://www.itmop.com/ 作者:网管联盟 我要评论(0)
在oracle 11g中,当在正则表达式中用了中括号时,某些符号会匹配不了,如[sd],要用类似于[[:digit:][:blank:]]才能匹配成功,以下是我测试的例子:
1 --中括号中的内容为一杠及空格([- ]),匹配成功,结果为:SA01-2345 6789 0123 4567 8900
2 SELECT to_char(REGEXP_SUBSTR('SA01-2345 6789 0123 4567 8900',
3 'SAd{2}[- ]d{4}[- ]d{4}[- ]d{4}[- ]d{4}[- ]d{4}|SAd{22}',
4 1, 1,'i')) as Reg_Str FROM dual;
5
6 --中括号中的内容为([-[:blank:]]),匹配成功,结果为:SA01-2345 6789 0123 4567 8900
7 SELECT to_char(REGEXP_SUBSTR('SA01-2345 6789 0123 4567 8900',
8 'SAd{2}[-[:blank:]]d{4}[-[:blank:]]d{4}[-[:blank:]]d{4}[-[:blank:]]d{4}[-[:blank:]]d{4}|SAd{22}',
9 1, 1,'i')) as Reg_Str FROM dual;
10
11 --如果将中括号换成小括号,匹配成功,结果为:SA01-2345 6789 0123 4567 8900
12 SELECT to_char(REGEXP_SUBSTR('SA01 - 2345 6789 0123 4567 8900',
13 '(SA)?d{2}(s|-)d{4}(s|-)d{4}(s|-)d{4}(s|-)d{4}(s|-)d{4}|(SA)?d{22}',
14 1, 1,'i')) as Reg_Str FROM dual;
15
16 --中括号中的内容为([-[:digit:][:blank:]]),匹配成功,结果为:SA01-2345 6789 0123 4567 8900
17 SELECT to_char(REGEXP_SUBSTR('SA01-2345 6789 0123 4567 8900',
18 '(SA)?[-[:digit:][:blank:]]{22,50}',
19 1, 1,'i')) as Reg_Str FROM dual;
20
21 --中括号中的内容为([-d[:blank:]]),匹配失败,结果为空
22 SELECT to_char(REGEXP_SUBSTR('SA01-2345 6789 0123 4567 8900',
23 '(SA)?[-d[:blank:]]{22,50}',
24 1, 1,'i')) as Reg_Str FROM dual;
25
26 --中括号内容如下,匹配失败,结果为空
27 SELECT to_char(REGEXP_SUBSTR('SA01-2345 6789 0123 4567 8900',
28 '(SA)?[-ds]{22,50}',
29 1, 1,'i')) as Reg_Str FROM dual;
30
31 --中括号内容如下,匹配失败,结果为空
32 SELECT to_char(REGEXP_SUBSTR('SA01-2345 6789 0123 4567 8900',
33 '(SA)?[-d ]{22,50}',
34 1, 1,'i')) as Reg_Str FROM dual;
35
36 --中括号中的内容为([-s]),匹配失败,结果为空
37 SELECT to_char(REGEXP_SUBSTR('SA01-2345 6789 0123 4567 8900',
38 'SAd{2}[-s]d{4}[-s]d{4}[-s]d{4}[-s]d{4}[-s]d{4}|SAd{22}',
39 1, 1,'i')) as Reg_Str FROM dual;
明白原因的麻烦在下面评论,谢谢!
关键词标签:Oracle,正则表达式
相关阅读 误删Oracle数据库实例的控制文件 为UNIX服务器设置Oracle全文检索 Oracle数据库如何查找删除重复的SQL语句 Oracle导入导出数据库的语法 oracle数据库安装预环境一键处理脚本 oracle常用DBA命令
热门文章
误删Oracle数据库实例的控制文件
利用Oracle分区表来减少磁盘I/O冲突
Oracle数据库优化之数据库磁盘I/O
讲解Oracle复制技术的分布式系统同步应用
刷新Oracle缓存
oracle 8080与TOMCAT默认端口冲突
人气排行 oracle中使用SQL语句修改字段类型-oracle修改SQL语句案例 Oracle中使用alter table来增加,删除,修改列的语法 ORACLE SQL 判断字符串是否为数字的语句 ORACLE和SQL语法区别归纳(1) oracle grant 授权语句 ORACLE修改IP地址后如何能够使用 如何加速Oracle大批量数据处理 Oracle删除表的几种方法 Oracle 10g创建表空间和用户并指定权限 Oracle连接数太多报错-ORA-12516错误 Oracle字符串截取 连接Oracle数据库的Hibernate配置文件
查看所有0条评论>>