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

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

常见正则表达式运算符

查看相关资料后发现有以下函数,其中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位小数】+100ml

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

根据以上正则表达式去所有数据中匹配提取出酒精含量后与酒驾20mg/100ml和醉驾标准80mg/ml进行比对,判断是否酒/醉驾。

  • 5
    点赞
  • 89
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

夜灬狼丶

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值