-
oracle正则表达式匹配非数字
一、regexp_like函数
1、语法
regexp_like(字段,正则表达式)
2、正则表达式
(1)、[] 元字符表示 范围
①[.0-9] 表示 小数点和0至9范围内 的字符
②[^.0-9] 表示非 小数点和0至9范围内 的字符
(2)、^ 元字符有两种含义
①^[.0-9]匹配以 .0-9开头的字符,^ 匹配字符的开始位置
②[^.0-9]匹配非 .0-9的字符
(3)、* 运算符表示 匹配前面的子表达式0次或多次
(4)、+ 运算符表示 匹配前面的子表达式1次或多次
(5)、? 运算符表示 匹配前面的子表达式0次或1次
(6)、$ 运算符表示 匹配字符的结束位置 ,[.0-9]$ 匹配 .0-9结尾的字符
3、测试
(1)、匹配非数字
select (case when regexp_like ('.11','([^.0-9])+') then 1 else 0 end)test from dual //匹配 .0-9 范围内的字符,返回1表示是非数字,0表示是数字。.11可以当做是数字
(2)、测试小数点开头
select 5*'.11' test from dual