需求:最近boss要求做一个专项数据,提取所有数据中涉及酒驾/醉驾但没有正常处理的数据,实现的原理是在描述中查找是否有酒精含量,有就提取出来判断是否酒驾/醉驾,这就涉及到需要用到正则表达式提取数字和字符串。特此做个记录方便后续查看。
常见正则表达式运算符
查看相关资料后发现有以下函数,其中REGEXP_SUBSTR函数符合本次要求
REGEXP_SUBSTR使用参数 REGEXP_SUBSTR(srcstr, pattern [, position[, occurrence [, match_option]]])
分析数据中的文字记录后发现涉及酒精检查的记录方式固定格式为以下几种,
“……酒精测试含量为88mg/100ml……”
“……酒精测试含量为288mg/100ml……”
“……酒精测试含量为88.11mg/100ml……”
得出格式为2~3位数字+【可能存在的一位小数点和1~2位小数】+100ml
即正则表达式应该为‘[0-9]+(\.[0-9]+)*(mg/100ml)’
根据以上正则表达式去所有数据中匹配提取出酒精含量后与酒驾20mg/100ml和醉驾标准80mg/ml进行比对,判断是否酒/醉驾。