网站导航网学 原创论文 原创专题 网站设计 最新系统 原创论文 论文降重 发表论文 论文发表 UI设计定制 论文答辩PPT格式排版 期刊发表 论文专题
返回网学首页
网学原创论文
最新论文 推荐专题 热门论文 论文专题
当前位置: 网学 > 设计资源 > 正则表达式 > 正文

Oracle正则表达式使用介绍

论文降重修改服务、格式排版等 获取论文 论文降重及排版 论文发表 相关服务

网学网为需要正则表达式的朋友们搜集整理了Oracle正则表达式使用介绍相关资料,希望对各位网友有所帮助!

下面通过一些例子来说明使用正则表达式来处理一些工作中常见的问题。
1.
REGEXP_SUBSTR
REGEXP_SUBSTR 函数使用正则表达式来指定返回串的起点和终点,返回与source_string 字符集中的VARCHAR2 或CLOB 数据相同的字符串。
语法:
--1.REGEXP_SUBSTR与SUBSTR函数相同,返回截取的子字符串
REGEXP_SUBSTR(srcstr, pattern [, position [, occurrence [, match_option]]])
注:
srcstr
源字符串

pattern
正则表达式样式

position
开始匹配字符位置

occurrence
匹配出现次数

match_option
匹配选项(区分大小写)

1.1从字符串中截取子字符串
SELECT regexp_substr(''1PSN/231_3253/ABc'', ''[[:alnum:]]+'') FROM dual;
Output: 1PSN
[[:alnum:]]+ 表示匹配1个或者多个字母或数字字符。
SELECT regexp_substr(''1PSN/231_3253/ABc'', ''[[:alnum:]]+'', 1, 2) FROM dual;
Output: 231
与上面一个例子相比,多了两个参数
1
表示从源字符串的第一个字符开始查找匹配
2
表示第2次匹配到的字符串(默认值是“1”,如上例)
select regexp_substr(''@@/231_3253/ABc'',''@*[[:alnum:]]+'') from dual;
Output: 231
@* 表示匹配0个或者多个@
[[:alnum:]]+ 表示匹配1个或者多个字母或数字字符
注意:需要注意“+”和“*”的区别
select regexp_substr(''1@/231_3253/ABc'',''@+[[:alnum:]]*'') from dual;
Output: @
@+ 表示匹配1个或者多个@
[[:alnum:]]* 表示匹配0个或者多个字母或数字字符
select regexp_substr(''1@/231_3253/ABc'',''@+[[:alnum:]]+'') from dual;
Output: Null
@+ 表示匹配1个或者多个@
[[:alnum:]]+ 表示匹配1个或者多个字母或数字字符
select regexp_substr(''@1PSN/231_3253/ABc125'',''[[:digit:]]+
  • 下一篇资讯: 正则表达式学习问答
  • 设为首页 | 加入收藏 | 网学首页 | 原创论文 | 计算机原创
    版权所有 网学网 [Myeducs.cn] 您电脑的分辨率是 像素
    Copyright 2008-2020 myeducs.Cn www.myeducs.Cn All Rights Reserved 湘ICP备09003080号 常年法律顾问:王律师
    ') from dual;
    Output: 125
    [[:digit:]]+$ 表示匹配1个或者多个数字结尾的字符
    select regexp_substr(''@1PSN/231_3253/ABc'',''[^[:digit:]]+
    12345下一页
  • 上一篇资讯: 正则表达式提取图片路径并过滤掉指定字符的写法
  • 下一篇资讯: 正则表达式学习问答
  • 相关资讯

    网学推荐

    原创论文

    文章排行榜

    设为首页 | 加入收藏 | 网学首页 | 原创论文 | 计算机原创
    版权所有 网学网 [Myeducs.cn] 您电脑的分辨率是 像素
    Copyright 2008-2020 myeducs.Cn www.myeducs.Cn All Rights Reserved 湘ICP备09003080号 常年法律顾问:王律师
    ') from dual;
    Output: /ABc
    [^[:digit:]]+$ 表示匹配1个或者多个不是数字结尾的字符
    select regexp_substr(''Tom_Kyte@oracle.com'',''[^@]+'') from dual;
    Output: Tom_Kyte
    [^@]+ 表示匹配1个或者多个不是“@”的字符
    select regexp_substr(''1PSN/231_3253/ABc'',''[[:alnum:]]*'',1,2)
    from dual;
    Output: Null
    [[:alnum:]]* 表示匹配0个或者多个字母或者数字字符
    注:因为是匹配0个或者多个,所以这里第2次匹配的是“/”(匹配了0次),而不是“231”,所以结果是“Null”
    1.2匹配重复出现
    查找连续2个小写字母
    SELECT regexp_substr(''Republicc Of Africaa'', ''([a-z])\1'', 1, 1, ''i'')

    FROM dual;
    Output: cc
    ([a-z])
    表示小写字母a-z
    \1
    表示匹配前面的字符的连续次数
    1
    表示从源字符串的第1个字符开始匹配
    1
    第1次出现符合匹配结果的字符
    i
    表示区分大小写
    1.3其他一些匹配样式
    查找网页地址信息
    SELECT regexp_substr(''Go to http://www.oracle.com/products and click on database'', ''http://([[:alnum:]]+\.?){3,4}/?'') RESULT

    FROM dual
    Output: http://www.oracle.com
    其中:
    http://
    表示匹配字符串“http://”
    ([[:alnum:]]+\.?) 表示匹配1次或者多次字母或数字字符,紧跟0次或1次逗号符
    {3,4}
    表示匹配前面的字符最少3次,最多4次
    /?

    表示匹配一个反斜杠字符0次或者1次


    提取csv字符串中的第三个值
    SELECT regexp_substr(''1101,Yokohama,Japan,1.5.105'', ''[^,]+'', 1, 3) AS output

    FROM dual;
    Output: Japan
    其中:
    [^,]+
    表示匹配1个或者多个不是逗号的字符
    1
    表示从源字符串的第一个字符开始查找匹配
    3
    表示第3次匹配到的字符串
    注:这个通常用来实现字符串的列传行
    --字符串的列传行
    SELECT regexp_substr(''1101,Yokohama,Japan,1.
    12345下一页
  • 上一篇资讯: 正则表达式提取图片路径并过滤掉指定字符的写法
  • 下一篇资讯: 正则表达式学习问答
  • 相关资讯

    网学推荐

    原创论文

    文章排行榜

    设为首页 | 加入收藏 | 网学首页 | 原创论文 | 计算机原创
    版权所有 网学网 [Myeducs.cn] 您电脑的分辨率是 像素
    Copyright 2008-2020 myeducs.Cn www.myeducs.Cn All Rights Reserved 湘ICP备09003080号 常年法律顾问:王律师