教你用正则表达式提取数字和小数点

2023-12-05 0 813
目录
  • 1、初识
    • 1.1、纯数字提取
    • 1.2、带有小数点数字提取
  • 2、语法
    • 3、实例代码
      • 4、参考Demo
        • 总结

          1、初识

          1.1、纯数字提取

          — \”提取123abc提取\”:提取当前字符当中的123

          — 1.Hive:
          select regexp_replace(\’提取123abc提取\’,\'[^0-9]+\’,\’\’) \”123\”
          select regexp_replace(\’提取123abc提取\’,\’\\D\’,\’\’) \”提取123abc提取\”

          — 2.PG: \’g\’:global,全局替换
          select regexp_replace(\’提取123abc提取\’,\'[^0-9]+\’,\’\’,\’g\’ ) \”123\”
          select regexp_replace(\’提取123abc提取\’,\’\\D\’,\’\’,\’g\’ ) \”123\”

          1.2、带有小数点数字提取

          — \”提取123.11abc提取\”:提取当前字符当中的123.11

          — 1.Hive:小数或者整数数据提取
          select regexp_extract(\’提取123.11abc提取\’,\'[0-9]+([.]{1}[0-9]+){0,1}\’,0) \”123.11\”
          select regexp_extract(\’提取123abc提取\’,\'[0-9]+([.]{1}[0-9]+){0,1}\’,0) \”123\”

          — 2.PG:
          select regexp_replace(\’提取123.11abc提取\’,\'[^\\d.\\d]\’,\’\’,\’g\’) \”123.11\”

          2、语法

          字符说明等效于\\将下一字符标记为特殊字符、文本、反向引用或八进制转义符。e.g:“n"匹配字符"n”。"\\n"匹配换行符。序列"\\\\“匹配”","\\(“匹配”("^匹配输入字符串开始的位置$匹配输入字符串结束的位置*零次或多次匹配前面的字符或子表达式{0,}+一次或多次匹配前面的字符或子表达式{1,}?零次或一次匹配前面的字符或子表达式{0,1}{n}n是非负整数。正好匹配n次。e.g:"o{2}"与"job"中的"o"不匹配,但与"food"中的两个"o"匹配{n,}n是非负整数。至少匹配n次。e.g:"o{2,}“不匹配"job"中的"o”,而匹配"fooooood"中的所有o"o{1,}“等效于"o+”"o{0,}“等效于"o*”{n,m}m和n是非负整数,其中n<=m。匹配至少n次,至多m次。e.g:"o{1,3}"匹配"fooooooood"中的头三个o"o{0,1}“等效于"o?”?当此字符紧随任何其他限定符(*、+、?、{n}、{n,}、{n,m})之后,匹配模式是“非贪心匹配”。“非贪心匹配”:匹配搜索到的尽可能短的字符串,而默认的“贪心匹配”则是匹配搜索到尽可能长的字符串。e.g:"oooo"中,"o+?“只能够匹配出单个"o”;而"o+“匹配出所有的"o”.匹配除"\\r\\n"之外的任何单个字符[xyz]字符集。匹配包含的任一字符。e.g:"[abc]“匹配"plain"中的"a”[^xyz]反向字符集。匹配未包含的任何字符。e.g:"[^abc]“匹配"plain"中"p”,“l”,“i”,“n”[a-z]字符范围。匹配指定范围内的任何字符。e.g:"[a-z]"匹配"a"到"z"范围内的任何小写字母[^a-z]反向范围字符。匹配不在指定范围内的任何字符。e.g:"[^a-z]"匹配任何不在"a"到"z"范围内的任何字符\\d数字字符匹配。[0-9]\\D非数字字符匹配。[^0-9]\\s匹配任何空白字符,包括空格、制表符、换页符等\\S匹配任何非空白字符\\w匹配任何类字符,包括下划线[A-Za-z0-9_]\\W与任何非单词字符匹配[^A-Za-z0-9_]

          3、实例代码

          — PG:regexp_match:匹配函数
          select regexp_match(\’会议事业部69.57%/\’,\'[\\d.\\d]{1,}\’) \”{69.57}\”
          select regexp_match(\’会议事业部69%57%/\’,\'[\\d%\\d]{1,}\’) \”{69%57%}\”
          — 子表达式中:[\\d.\\d]:这时候:\’.\’ 不再是匹配除\”\\r\\n\”之外的任何单个字符
          select regexp_match(\’会议事业部69%57%/\’,\'[\\d.\\d]{1,}\’) \”{69}\”

          4、参考Demo

          — PostgreSQL正则表达使用https://blog.csdn.net/qq_22994783/article/details/82699559– Hive常用正则表达式https://cloud.tencent.com/developer/article/1538552

          总结

          到此这篇关于用正则表达式提取数字和小数点的文章就介绍到这了,更多相关表达式提取数字小数点内容请搜索悠久资源网以前的文章或继续浏览下面的相关文章希望大家以后多多支持悠久资源网!

          您可能感兴趣的文章:

          • python正则表达式从字符串中提取数字的思路详解
          • java正则表达式提取数字的方法实例
          • Python利用正则表达式从字符串提取数字

          收藏 (0) 打赏

          感谢您的支持,我会继续努力的!

          打开微信/支付宝扫一扫,即可进行扫码打赏哦,分享从这里开始,精彩与您同在
          点赞 (0)

          悠久资源 正则表达式 教你用正则表达式提取数字和小数点 https://www.u-9.cn/biancheng/zhengze/95408.html

          常见问题

          相关文章

          发表评论
          暂无评论
          官方客服团队

          为您解决烦忧 - 24小时在线 专业服务