今天在ITPUB上看帖子,看到别人贴上用正则表达式来解决.然后就决定写篇日志来记录一下学习的历程.
之前看过一些文章,ORACLE 从10G开始支持正则表达式.其中有四个函数:
1,REGEXP_LIKE :与LIKE的功能相似
2,REGEXP_INSTR :与INSTR的功能相似
3,REGEXP_SUBSTR :与SUBSTR的功能相似
4,REGEXP_REPLACE :与REPLACE的功能相似
正则表达式中常用到的元数据(metacharacter)如下:
- ^ 匹配字符串的开头位置。
- $ 匹配支付传的结尾位置。
- * 匹配该字符前面的一个字符0次,1次或者多次出现。例如52*oracle 可以匹配 5oracle,52oracle,522oracle,5222oracle等等。
- + 匹配该字符前面的一个字符1次或者多次出现。例如52+oracle 可以匹配 52oracle,522oracle,5222oracle等等
- ? 匹配该字符前面的一个字符0次或1次或者多次出现。例如52?oracle 只能匹配5oracle,52oracle等等
- {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
以下举些例子来简单的介绍一下几个函数的用法:(待续)
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/26700482/viewspace-743298/
,如需转载,请注明出处,否则将追究法律责任。