|
|
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'。)
注:srcstr可用字段名也可输入字符串
附常用表达式
元字符
| 含义
| 例子
| \
| 转义符,匹配特殊字符
| \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:]
| 匹配所有的空格符
| |
|
|