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

Oracle正则表达式使用介绍

论文降重修改服务、格式排版等 获取论文 论文降重及排版 论文发表 相关服务
5.105'', ''[^,]+'', 1, LEVEL) AS output

FROM dual
CONNECT BY LEVEL <= length(''1101,Yokohama,Japan,1.5.105'') -

length(REPLACE(''1101,Yokohama,Japan,1.5.105'', '','')) + 1;
Output: 1101

Yokohama
Japan
1.5.105
这里通过LEVEL来循环截取匹配到的字符串。


下面这个例子,查找源字符串中是否包含 kid 、kids或者kidding 这三个字符串
SELECT CASE

WHEN regexp_like(''Why does a kid enjoy kidding with kids only?'',

''kid(s|ding)*'',

''i'') THEN

''Match Found''

ELSE

''No Match Found''

END AS output

FROM dual;
Output: Match Found
其中:
kid
表示字符串kid
(s|ding)*
表示匹配0次或者多次字符“s”或者“ding”
i
表示不区分大小写
2.
REGEXP_INSTR
REGEXP_INSTR 函数使用正则表达式返回搜索模式的起点和终点。REGEXP_INSTR 的语法如下所示。REGEXP_INSTR 返回一个整数,指出搜索模式的开始或结束的位置,如果没有发现匹配的值,则返回0。
语法:
--2.REGEXP_INSTR与INSTR函数相同,返回字符串位置
REGEXP_INSTR(srcstr, pattern [, position [, occurrence [, return_option [,match_option]]]])
与REGEXP_SUBSTR一样,它也有变量pattern、position(开始位置)、occurrence 和match_parameter;这里主要介绍一下新参数return_option 的作用,它允许用户告诉Oracle,模式出现的时候,要返回什么内容。
具体如下面的例子所示:
--如果return_option 为0 则,Oracle 返回第一个字符出现的位置。这是默认值,与INSTR的作用相同
SELECT regexp_instr(''abc1def'',
''[[:digit:]]'') output

FROM dual;
Output: 4
--如果return_option 为1,则Oracle 返回跟在所搜索字符出现以后下一个字符的位置。
--例如,下面的查询返回了在串中发现的第一个数字后的位置:
SELECT regexp_instr(''abc1def'',
''[[:digit:]]'',1,1,1) output

FROM dual;
Output: 5

Oracle正则表达式(regularexpression)

元字符

字符含义

举例说明

^

匹配字符串的开始位置(在[]中使用,此时它表示不接受该字符集合。

^a:匹配以a开始的字符串

[^a]:匹配不含a的字符串

-

当使用在a-m表示范围;

当使用在第一个字符时表示

连字符串,如[-abc]

$

匹配字符结束位置

‘a

  • 下一篇资讯: 正则表达式学习问答
  • 版权所有 网学网 [Myeducs.cn] 您电脑的分辨率是 像素
    Copyright 2008-2020 myeducs.Cn www.myeducs.Cn All Rights Reserved 湘ICP备09003080号 常年法律顾问:王律师
    ':匹配以a结束的字符串

    .

    匹配除换行符 n之外的任何单字符。

    ?

    匹配前面的子表达式零次或一次

    tr(y(ing)?):可以表示try或者trying

    *

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

    +

    匹配前面的子表达式一次或多次

    ()

    标记一个子表达式的开始和结束位置

    a(b)*可以匹配

    ab,abb,abbb,youabb

    (c|d)匹配c或d

    []

    标记一个中括号表达式

    [cd]匹配选择c或d等同于

    (c|d)。匹配的是单字符,[^cd]是匹配c,d之外的单字符。

    [a-z]表示所有小写字母

    {m,n}

    m= <出现次数 <=n,''{m}''表示出现m次,''{m,}''表示至少出现m次。

    |

    表示或者的关系。指明两项之间的一个选择

    字符簇

    字符含义

    [[:alpha:]]

    任何字母。

    [[:digit:]]

    [[:digit:]] 任何数字。

    [[:alnum:]]

    任何字母和数

    [[:space:]]

    任何白字符。

    [[:upper:]]

    任何大写字母。

    [[:lower:]]

    任何小写字母。

    [[:punct:]]

    任何标点符号。

    [[:xdigit:]]

    任何16进制的数字,相当于[0-9a-fA-F]。

    Oracle支持正则表达式的内置函数

    名称

    语法

    备注

    REGEXP_LIKE

    REGEXP_LIKE

    (source_string,

    pattern

    [, match_parameter]

    )

    source_string:

    源字符串

    Pattern:

    正则表达式

    match_parameter:

    匹配模式(i:不区分大小写;c:区分大小写;n:允许使用可以匹配任意字符串的操作符;m:将x作为一个包含多行的字符串。

    REGEXP_REPLACE

    REGEXP_REPLACE

    (source_string,

    pattern

    [,replace_string]

    [,position]

    [,occurtence]

    [,match_parameter]

    )

    replace_string:

    用于替换的字符串

    Position:

    开始搜索的起始位置

    occurtence

    指定替换第n次出现字符串

    其他同上。

    REGEXP_SUBSTR

    REGEXP_SUBSTR

    (source_string, pattern

    [,position

    [,occurrence

    [,match_parameter]]]

    )

    Position:

    指定在字符串中准确位置,默认为1

    Occurrence:

    指定在源字符串匹配过程中相对其他字符串,哪个字符串应该匹配。例如

    select regexp_substr(''The zip code

    80831 is for falcon, co'',

    ''[[:alpha:]]{3,}'', 1, 3)

    from dual;

    结果选择的是code而非The或zip。

    REGEXP_INSTR

    REGEXP_INSTR

    (source_string,

    pattern

    [,start_position

    [,occurrence

    [,return_option

    [,match_parameter]]]]

    )

    start_position:

    开始搜索位置

    Occurrence:

    第n次出现pattern,默认为1

    return_option:

    0:pattern的起始位置

    1:pattern下一个字符起始位置

    默认为0

    REGEXP_COUNT

    REGEXP_COUNT

    (source_string,

    pattern

    [[,start_position]

    [,match_parameter]])

    11g新增的函数,表示pattern在原字符串中出现的次数

    start_position:

    开始搜索的位置

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