sql利用正则表达式提取数字及固定字符串

时间:2024-04-11 21:26:42

需求:最近boss要求做一个专项数据,提取所有AJ中涉及酒驾/醉驾但没有正常处理的数据,实现的原理是在描述中查找是否有酒精含量,有就提取出来判断是否酒驾/醉驾,这就涉及到需要用到正则表达式提取数字和字符串。特此做个记录方便后续查看。

常见正则表达式运算符

sql利用正则表达式提取数字及固定字符串

sql利用正则表达式提取数字及固定字符串

查看相关资料后发现有以下函数,其中REGEXP_SUBSTR函数符合本次要求

REGEXP_LIKE 类似于 LIKE 运算符,但执行正则表达式匹配而不是简单的模式匹配
REGEXP_INSTR 在给定字符串中搜索某个正则表达式模式,并返回匹配项的位置。
REGEXP_REPLACE 搜索某个正则表达式模式并使用替换字符串替换它
REGEXP_SUBSTR 在给定字符串中搜索某个正则表达式模式并返回匹配的子字符串

 REGEXP_SUBSTR使用参数    REGEXP_SUBSTR(srcstr, pattern [, position[, occurrence [, match_option]]])

 

分析描述中的数据发现固定格式为一下几种,

“……酒精测试含量为88mg/100ml……”

“……酒精测试含量为288mg/100ml……”

“……酒精测试含量为88.11mg/100ml……”

得出格式为2~3位数字+【可能存在的一位小数点和1~2位小数】

即正则表达式应该为‘[0-9]+(\.[0-9]+)*(mg\\100ml)’

sql利用正则表达式提取数字及固定字符串