专注于互联网--专注于架构

最新标签
网站地图
文章索引
Rss订阅

首页 »数据库 » oracle正则:Oracle 10g正则规则匹配使用方法 »正文

oracle正则:Oracle 10g正则规则匹配使用方法

来源: 发布时间:星期四, 2009年2月12日 浏览:161次 评论:0


  由于近期很多工作上需要从中取特定数据在oracle 10g以前处理很麻烦需要组合很多substr的类

  而在10g中就可以直接使用正则规则匹配方便实现

  举例:

SQL> select t.gdzt,regexp_substr(gdzt,'//CELL--[^,)]+'),regexp_substr(gdzt,'CELL [[:digit:]-)]+') from jcss_gd t;
  GDZT REGEXP_SUBSTR(GDZT,'//CELL--[^ REGEXP_SUBSTR(GDZT,'CELL[[:DIG
  -------------------------------------------------------------------------------- -------------------------------------------------------------------------------- --------------------------------------------------------------------------------
  460-00-28951-21003//CELL Disconnected//CELL--(JZ-BSS19:SITE-11:chan //CELL--(JZ-BSS19:SITE-11:changtuchezhan CELL 460-00-28951-21003
  460-00-29020-24943//CELL Disconnected//CELL--(JZ-BSS20:SITE-55:yaog //CELL--(JZ-BSS20:SITE-55:yaoguai CELL 460-00-29020-24943
  460-00-29020-24913//CELL Disconnected//CELL--(JZ-BSS20:SITE-52:sanx //CELL--(JZ-BSS20:SITE-52:sanxinggong CELL 460-00-29020-24913
  //460-00-29011-25393//CELL Disconnected//CELL--(JZ-BSS33:SITE-39:xuet //CELL--(JZ-BSS33:SITE-39:xuetan CELL 460-00-29011-25393



  附规则:

  ^' 匹配输入开始位置在方括号表达式中使用此时它表示不接受该集合

  '$' 匹配输入结尾位置如果设置了 RegExp 对象 Multiline 属性则 $ 也匹配 'n' 或 'r'

  '.' 匹配除换行符 n的外任何单

  '?' 匹配前面子表达式零次或

  '+' 匹配前面子表达式次或多次

  '*' 匹配前面子表达式零次或多次

  '|' 指明两项的间个选择例子'^([a-z]+|[0-9]+)$'表示所有小写字母或数字组合成

  '( )' 标记个子表达式开始和结束位置

  '' 标记个中括号表达式

  '{m,n}' 个精确地出现次数范围m=<出现次数<=n'{m}'表示出现m次'{m,}'表示至少出现m次

  num 匹配 num其中 num 是个正整数对所获取匹配引用

  簇:

  [[:alpha:]] 任何字母

  [[:digit:]] 任何数字

  [[:alnum:]] 任何字母和数字

  [[:space:]] 任何白

  [[:upper:]] 任何大写字母

  [[:lower:]] 任何小写字母

  [[:punct:]] 任何标点符号

  [[:xdigit:]] 任何16进制数字相当于[0-9a-fA-F]

  各种操作符运算优先级

  转义符

  , (?:), (?=), 圆括号和方括号

  *, +, ?, {n}, {n,}, {n,m} 限定符

  ^, $, anymetacharacter 位置和顺序

  | “或”操作

0

相关文章

读者评论

发表评论

  • 昵称:
  • 内容: