oracle正则表达式:
oracle正则表达式函数:
REGEXP_SUBSTR
例子:REGEXP_SUBSTR('Oracle 2010', 'O r a c l e',1, 1, 'x')
REGEXP_INSTR:返回的匹配字符串穿出现的位置
例子:REGEXP_INSTR(hr.employees.email,'\w+@\w+(\.\w+)+')
REGEXP_REPLACE:
例子REGEXP_REPLACE(hr.countries.country_name,'(.)', '\1 ')
REGEXP_LIKE
例子:WHERE REGEXP_LIKE((hr.employees.first_name,'^Ste(v|ph)en$')
例子:REGEXP_COUNT('Albert Einstein', 'e', 7, 'c')
上面例子是直接摘自oracle官网的,没有吧操作截图验证发出来了。
其他函数:
TO_CHAR(…)
TO_NUMBER(…)
TO_DATE(…)
正则表达式字符说明:
方括号表达示
方括号表达式 | 描述 |
[[:alnum:]] | 字母和数字混合的字符 |
[[:alpha:]] | 字母字符 |
[[:cntrl:]] | 控制字符 |
[[:digit:]] | 数字字符 |
[[:graph:]] | 图像字符 |
[[:lower:]] | 小写字母字符 |
[[:print:]] | 打印字符 |
[[:punct:]] | 标点符号字符 |
[[:space:]] | 空格字符 |
[[:upper:]] | 大写字母字符 |
[[:xdigit:]] | 十六进制数字字符 |
l元字符
元字符 | 描述 |
*? | 如果有前面字符串的0次以上出现时匹配 |
+? | 如果有前面字符串的1次以上出现时匹配 |
{m} | m是整数。它文本中找出给定子表达式的恰好m次出现 |
{n}? | 前面的字符串只出现一次时匹配 |
{m,} | M是整数。它在文本中找出给定子表达示的至少m次出现 |
{n,}? | 匹配前面的字符串至少n次 |
{m,n} | M和n是整数。它在文本中找出给定子表达示的m到n次出现 |
{n,m} | 匹配前面的字符串至少到n次,但不多于m次 |
c | 查询操作区分大小写 |
i | 查询操作不区分大水写 |
m | 多行字符串上的查询,在源字符串包含多行时,该查询允许用(^)模式匹配字符串的开始 |
n | 通常匹配单个字符,也可以匹配新行 |
x | 需要忽略正则表达示中的空格字符时,使用参数‘X’ |
\A | 匹配字符串首,而不是行首,因而多行字符串不能匹配每一行 |
\d | 匹配任意数字字符 |
\D | 匹配任意非数字字符 |
\s | 匹配任意空格字符 |
\S | 匹配任意非空格字符 |
\w | 匹配任意字符和数字。该字符和[:alnum:]之间的不同是\w包括下划线字符 |
\W | 匹配任意非空字符串 |
* | 通配符。找出在文本中包含0或多次给定子表达式出现的记录 |
+ | 找出在文本中包含1或多次给定子表达式出现的记录 |
? | 找出在文本中包含0次或1次给定子表达示出现的记录 |
. | 匹配文本中的任意字符 |
^ | 锚。如果该字符后的表达式出现在行首,则匹配成功 |
$ | 锚。如果该字符后的表达式出现在行首,则匹配成功 |
| | 分隔符,使用方法和OR相同 |
(….) | 分组子表达式 |