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:]
|
匹配所有的空格符
|