Oracle使用正则表达式离不开这4个函数:
REGEXP_LIKE (srcstr, pattern, modifier )
__srcstr :检索字符串
__pattern :匹配模式
__modifier :检索模式('i'不区分大小写进行检索;'c'区分大小写进行检索。默认为'c'。)
__return type :boolean
2. regexp_substr
REGEXP_SUBSTR(srcstr, pattern, position, occurrence, modifier)
__srcstr :检索字符串
__pattern :匹配模式
__position :搜索srcstr的起始位置(默认为1)
__occurrence:搜索第几次出现匹配模式的字符串(默认为1)
__modifier :检索模式('i'不区分大小写进行检索;'c'区分大小写进行检索。默认为'c'。)
3. regexp_instr
REGEXP_INSTR(srcstr, pattern, position, occurrence, returnparam, modifier)
__srcstr :检索字符串
__pattern :匹配模式
__position :搜索srcstr的起始位置(默认为1)
__occurrence :搜索第几次出现匹配模式的字符串(默认为1)
__returnparam :返回该子串在srcstr中的位置(0表示头位置,1表示尾位置+1,默认为0。)
__modifier :检索模式('i'不区分大小写进行检索;'c'区分大小写进行检索。默认为'c'。)
4. regexp_replace
REGEXP_REPLACE(srcstr, pattern, replacestr, position, occurrence, modifier)
__srcstr :检索字符串
__pattern :匹配模式
__replacestr :新的子串(默认值为NULL)
__position :srcstr的检索起始位置(默认为1)
__occurrence :替换第几次出现匹配模式的字符串(默认为0)
__modifier :检索模式('i'不区分大小写进行检索;'c'区分大小写进行检索。默认为'c'。)
注:[color=red]srcstr[/color]可用字段名也可输入字符串
附常用表达式
元字符 | 含义 | 例子 |
\ | 转义符,匹配特殊字符 | \n,匹配换行符 \\,匹配反斜线“\” \(,匹配左括号“(” \),匹配右括号“)” |
^ | 匹配字符串开头位置 | ^A,匹配以A打头字符 |
$ | 匹配字符串结尾位置 | A$,匹配以A结尾字符 |
* | 匹配前面字符0次或是多次 | ab*c,可以匹配ac、abc、abbc等等 |
+ | 匹配前面字符1次或是多次 | ab+c,可以匹配abc、abbc、abbbc等等 |
? | 匹配前面字符0次或1次 | ab?c,可以匹配ac、abc |
{n} | 匹配一个字符n次,n为整数 | ab{2}c,可以匹配abbc |
{n,m} | 匹配一个字符至少n次,最多m次 | ab{2,3}c,可以匹配abbc、abbbc |
(pattern) | 匹配指定模式的一个子表达式 | ab(a|b),可以匹配aba、abb |
x|y | 匹配x或y | ab|cd,可以匹配ab、cd |
[:alphanum:] | 匹配字母、数字 | 可以匹配字符0-9、A-Z和a-z |
[:alpha:] | 匹配字母 | 可以匹配字符A-Z和a-z |
[:blank:] | 匹配空格或tab键 | |
[:digit:] | 匹配数字0-9 | |
[:graph:] | 匹配非空字符 | |
[:lower:] | 匹配小写字母a-z | |
[:upper:] | 匹配大写字母A-Z | |
[:xdigit:] | 匹配十六进制数字0-9、A-F和a-f | |
[:punct:] | 匹配标点符号.,”等等 | |
[:space:]
| 匹配所有的空格符
|