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

目录
  • 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

总结

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

(0)

相关推荐

  • Python利用正则表达式从字符串提取数字

    目录 前言 利用正则表达式从字符串提取数字 附python正则表达式抽取文本中的时间日期 总结 前言 正则表达式是一个特殊的字符序列,它能帮助你方便的检查一个字符串是否与某种模式匹配. Python 自1.5版本起增加了re 模块,它提供 Perl 风格的正则表达式模式. re 模块使 Python 语言拥有全部的正则表达式功能. 利用正则表达式从字符串提取数字 主要用到下面几个函数 (1)compile 函数根据一个模式字符串和可选的标志参数生成一个正则表达式对象.该对象拥有一系列方法用于正则

  • python正则表达式从字符串中提取数字的思路详解

    python从字符串中提取数字 使用正则表达式,用法如下: ## 总结 ## ^ 匹配字符串的开始. ## $ 匹配字符串的结尾. ## \b 匹配一个单词的边界. ## \d 匹配任意数字. ## \D 匹配任意非数字字符. ## x? 匹配一个可选的 x 字符 (换言之,它匹配 1 次或者 0 次 x 字符). ## x* 匹配0次或者多次 x 字符. ## x+ 匹配1次或者多次 x 字符. ## x{n,m} 匹配 x 字符,至少 n 次,至多 m 次. ## (a|b|c) 要么匹配

  • java正则表达式提取数字的方法实例

    复制代码 代码如下: @Test    public void test33() {        String phoneString = "哈哈,13888889999";        // 提取数字        // 1        Pattern pattern = Pattern.compile("[^0-9]");        Matcher matcher = pattern.matcher(phoneString);        Strin

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

    目录 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提取" --

  • python中如何使用正则表达式提取数据

    目录 常用正则表达式实例 re.compile 函数 方括号-匹配几个字符之一 切割字符串 字符串替换 匹配模式替换 指定替换函数 总结 正则表达式是一个特殊的字符序列,它能帮助你方便的检查一个字符串是否与某种模式匹配. re 模块使 Python 语言拥有全部的正则表达式功能. compile 函数可创建一个模式字符串和可选的标志参数组成的一个正则表达式对象.该对象拥有一系列方法用于正则表达式匹配和替换. re 模块也提供了与这些方法功能完全一致的函数,这些函数使用一个模式字符串做为它们的第一

  • jmeter正则表达式提取器的用法与正则详解

    我们再使用jmeter请求接口时,碰到一些业务流程性的接口改怎么办,比如,我一个发布内容的接口需要用到登录接口返回的token加到请求上去才能发布内容,那在jmeter上该是如何实现的咧? 这里介绍的是jmeter的正则表达式提取器 1,把正则表达式添加到需要提取返回内容的http请求里,添加步骤是,,右键http请求--添加--后置处理器--正则表达式处理器 2,在正则表达式提取器配置设置页里, 1)要检查的响应字段:相当于是要提取哪个位置的内容数据 2)引用名称:我们把内容提取出来后要赋值给

  • 常用的正则表达式大全(数字、字符、固定格式)

    相关阅读: IOS开发常用的正则表达式 Java正则表达式过滤出字母.数字和中文 正则表达式(regular expression)描述了一种字符串匹配的模式,可以用来检查一个串是否含有某种子串.将匹配的子串做替换或者从某个串中取出符合某个条件的子串等. 列目录时, dir *.txt或ls *.txt中的*.txt就不是一个正则表达式,因为这里*与正则式的*的含义是不同的. 构造正则表达式的方法和创建数学表达式的方法一样.也就是用多种元字符与运算符可以将小的表达式结合在一起来创建更大的表达式.

  • Java正则表达式提取字符的方法实例

    正好遇到一个需求需要将字符串中特定的字符全部提取出来,这个如果是按常规的字符串处理的话非常的繁琐.于是想到用正则表达式来完成.项目需求是这样的:需要提取车牌号中最后一个数字,比如说:苏A7865提取5,苏A876X提取6 实现方法: import java.util.regex.Matcher; import java.util.regex.Pattern; public class Test { public static void main(String[] args) { String s

  • 比较常用的几个正则表达式匹配数字(收藏)

    正则表达式用于字符串处理.表单验证等场合,实用高效.现将一些常用的表达式收集于此,以备不时之需. 匹配中文字符的正则表达式: [\u4e00-\u9fa5] 评注:匹配中文还真是个头疼的事,有了这个表达式就好办了 匹配双字节字符(包括汉字在内):[^\x00-\xff] 评注:可以用来计算字符串的长度(一个双字节字符长度计2,ASCII字符计1) 匹配空白行的正则表达式:\n\s*\r 评注:可以用来删除空白行 匹配HTML标记的正则表达式:<(\S*?)[^>]*>.*?</\1

  • java从字符串中提取数字的简单实例

    随便给你一个含有数字的字符串,比如: String s="eert343dfg56756dtry66fggg89dfgf"; 那我们如何把其中的数字提取出来呢?大致有以下几种方法,正则表达式,集合类,还有就是String类提供的方法. 1 String类提供的方法: package 测试练习; import Java.util.*; public class get_StringNum { /** *2016.10.25 */ public static void main(Strin

随机推荐