a我考网

 找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 89|回复: 1

[综合] Oracle辅导:Oracle正则表达式注意问题

[复制链接]
发表于 2012-8-4 13:54:49 | 显示全部楼层 |阅读模式
在Oracle 11g中,当在正则表达式赌暌姑了中括号时,某些符号会匹配不了,如[sd],要用近似于[[:digit:][:blank:]]才能匹配成功,以下是我测试的例子:   1 --中括号中的内容为一杠及空格([- ]),匹配成功,结不美观为:SA01-2345 6789 0123 4567 8900* z2 h: K2 S! G, e: `) y( Q+ W
  2 SELECT to_char(REGEXP_SUBSTR('SA01-2345 6789 0123 4567 8900',% ]& R/ u( W: k( w+ ~+ y  I1 p
  3 'SAd{2}[- ]d{4}[- ]d{4}[- ]d{4}[- ]d{4}[- ]d{4}|SAd{22}',
0 c$ J9 E) p( G. U- R  4  1, 1,'i')) as Reg_Str FROM dual;/ G2 D9 i) t7 ]
  5% H+ ~! E% w* b" A7 z& Y1 L  N
  6 --中括号中的内容为([-[:blank:]]),匹配成功,结不美观为:SA01-2345 6789 0123 4567 8900
0 R, l9 ?! R! F  7 SELECT to_char(REGEXP_SUBSTR('SA01-2345 6789 0123 4567 8900',3 R& d7 }, a& s. j* \# H/ h
  8 'SAd{2}[-[:blank:]]d{4}[-[:blank:]]d{4}[-[:blank:]]d{4}[-[:blank:]]d{4}[-[:blank:]]d{4}|SAd{22}',
- c0 o% C  Y0 F; v  9  1, 1,'i')) as Reg_Str FROM dual;
6 @" m( X. b$ E/ z  10
& ~4 _7 {  [5 l  11 --如不美观将中括号换成小括号,匹配成功,结不美观为:SA01-2345 6789 0123 4567 8900& ^: |) s3 {' E; Z1 m
  12 SELECT to_char(REGEXP_SUBSTR('SA01  -  2345 6789 0123 4567 8900',
0 ]1 o, r8 d3 `  13 '(SA)?d{2}(s|-)d{4}(s|-)d{4}(s|-)d{4}(s|-)d{4}(s|-)d{4}|(SA)?d{22}',
1 I9 |- R2 K& F8 t; X: d  14  1, 1,'i')) as Reg_Str FROM dual;0 e7 {! ~! A% S6 L6 I3 w' ?' b3 y
  15
1 A- T3 c! K4 f2 E8 ]3 w" r  16 --中括号中的内容为([-[:digit:][:blank:]]),匹配成功,结不美观为:SA01-2345 6789 0123 4567 8900
2 K  n5 l3 t) L0 f. Z  17 SELECT to_char(REGEXP_SUBSTR('SA01-2345 6789 0123 4567 8900',
. f7 {* l( ^6 T2 @  18 '(SA)?[-[:digit:][:blank:]]{22,50}',3 V' C+ a6 ~: t! f. e
  19  1, 1,'i')) as Reg_Str FROM dual;
8 G& x+ M0 ?0 i3 v; o0 c3 k$ K) z( n* Y; c' l
  20
回复

使用道具 举报

 楼主| 发表于 2012-8-4 13:54:50 | 显示全部楼层

Oracle辅导:Oracle正则表达式注意问题

</p>  21 --中括号中的内容为([-d[:blank:]]),匹配失踪败,结不美观为空! I2 {5 ?4 B/ c& K' L
  22 SELECT to_char(REGEXP_SUBSTR('SA01-2345 6789 0123 4567 8900',
. ?! [0 v! x2 Y5 o6 W6 f% P9 N: Z9 I  23 '(SA)?[-d[:blank:]]{22,50}',9 y, Y2 T5 h2 R+ r$ L6 }: x
  24  1, 1,'i')) as Reg_Str FROM dual;
+ d# O" d9 H2 b9 H  25
) P/ e6 m9 u+ J0 u. Z  G  26 --中括号内容如下,匹配失踪败,结不美观为空; y, m9 b4 m( _) U
  27 SELECT to_char(REGEXP_SUBSTR('SA01-2345 6789 0123 4567 8900',+ a( ]7 Z  v- L. `+ @
  28 '(SA)?[-ds]{22,50}',
% I7 B0 V6 {8 M; _  29  1, 1,'i')) as Reg_Str FROM dual;
. x4 }! O* d$ `- y! y  B; n# D' S% e" Q/ ?  30( F, k0 v: ^9 A! q# b4 i2 H7 ^
  31 --中括号内容如下,匹配失踪败,结不美观为空
  z2 n3 n; l3 s5 O! f  32 SELECT to_char(REGEXP_SUBSTR('SA01-2345 6789 0123 4567 8900',& @2 i( X6 U9 R4 G4 l0 `
  33 '(SA)?[-d ]{22,50}',
! s" L- L' ]: |  34  1, 1,'i')) as Reg_Str FROM dual;4 [2 k4 W; h$ Z' b$ |6 @
  35( G# Z6 u; B' S0 G& d
  36 --中括号中的内容为([-s]),匹配失踪败,结不美观为空. S9 b7 m6 j1 E; X
  37 SELECT to_char(REGEXP_SUBSTR('SA01-2345 6789 0123 4567 8900',
1 Q& Y: v/ X# o1 n( ^  38 'SAd{2}[-s]d{4}[-s]d{4}[-s]d{4}[-s]d{4}[-s]d{4}|SAd{22}',7 y3 g$ i  b4 F. ~
  39  1, 1,'i')) as Reg_Str FROM dual;
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|Woexam.Com ( 湘ICP备18023104号 )

GMT+8, 2024-5-16 03:35 , Processed in 1.145252 second(s), 31 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表