07_oracle正则表达式语法

oracle正则表达式中常用到的元数据如下:
^ 匹配字符串的开头位置。
$ 匹配支付传的结尾位置。

  • 匹配该字符前面的一个字符0次,1次或者多次出现。
    +匹配该字符前面的一个字符1次或者多次出现。
    ? 匹配该字符前面的一个字符0次或1次或者多次出现。
    {n}匹配一个字符串n次,n为正整数。例如:hel{2}o所匹配的是hello
    {n,m}匹配一个字符串至少n次,至多m次。其中n和m都是整数。
    . 匹配除了null之外的任何单个字符串
    (pattern)这个是用来匹配指定模式的一个子表达式
    x|y 匹配x或者y,其中x和y是一个或者多个字符
    [abc]匹配括号中的任意一个字符。例如:[ab]bc可以匹配abc和bbc
    [a-z]匹配指定范围内的任意字符串。例如[A-G]hi可以匹配Ahi至Ghi

[::]指定一个字符类,可以匹配该类中的任意字符 这里的字符类包括:
[:alphanum:]可以匹配字符0-9、A-Z、a-z
[:alpha:]可以匹配字符A-Z、a-z
[:blank:]可以匹配空格或者tab键
[:digit:]可以匹配数字0-9
[:gragh:]可以匹配非空字符
[:punct:]可以匹配. , ” ‘等标点符号。
[:upper:]可以匹配字符A-Z
[:lower:]可以匹配字符a-z

执行函数为:
regexp_substr(srcstr,pattern[,start[,occurence[match_option]]])
srcstr待匹配的函数
pattern正则表达式元字符构成的匹配模式
start 开始匹配的位置,如果不指定默认为1
occurrence 匹配的次数,如果不指定,默认为1
match_option 匹配参数,‘c’区分大小写(默认选项),‘i’ 不区分大小写

select regexp_substr(‘LC0021’,’^LC[0-9]{4}’ ) value from dual;
select regexp_substr(‘OD0001’,’^LC[0-9]{4}’ ) value from dual;
select regexp_substr(‘Y’,’(N|Y)’ ) value from dual;

猜你喜欢

转载自blog.csdn.net/ligdjn/article/details/82978321
今日推荐