正则表达式 查找数字

数字相关的常用语法:

\d 数字字符匹配。等效于 [0-9]。
\D 非数字字符匹配。等效于 [^0-9]。
[xyz] 字符集。匹配包含的任一字符。例如,"[abc]“匹配"plain"中的"a”。
[^xyz] 反向字符集。匹配未包含的任何字符。例如,"[^abc]“匹配"plain"中"p”,“l”,“i”,“n”。

find 和 matches 的区别

find 是部分匹配,适合判断是否含有某些内容,比如字符中是否含有数字

matches 是全匹配,适合判断是否为数字或是字母

1,判断字符中是否有数字

表达式可以是 \d 或是 [0-9] 可能有多个加*

 public static void main(String[] args) {String str2 = "1aa564sdfp5324";System.out.println("======= "+str2+" =========");hasDigit(str2);str2 = "234564";System.out.println("======= "+str2+" =========");hasDigit(str2);}public static boolean hasDigit(String content) {String regExp = "\\d+";regExp = "[0-9]*";Pattern pattern=Pattern.compile(regExp);Matcher m = pattern.matcher(content);System.out.println(" matches nums: " +m.matches());System.out.println(" find nums: " +m.find());return m.find();}

结果:

======= 1aa564sdfp5324 =========matches nums: falsefind nums: true
======= 234564 =========matches nums: truefind nums: true

2,提取字符串中的数字

表达式: [^0-9] 需要用到反向字符集,去掉非数字的。

public static void main(String[] args) {String str = "curStaff[25].staffName12";getContainsNum(str);}private static String getContainsNum(String str){String regExp="[^0-9]"; // 反向字符集。匹配未包含的数字,替换着里面的数字Pattern pattern = Pattern.compile(regExp);Matcher matcher = pattern.matcher(str);System.out.println("find "+matcher.find());String nums = matcher.replaceAll("").trim();System.out.println("nums "+nums);return nums;}

结果:

find true
nums 2512

这个例子中会有个问题,数字是获取了,但是糅合在一起了,一般会需要分开。

3,分开提取的数字

替换的时候使用特殊字符进行替换,然后再进行分割,进行大小判断

public static void main(String[] args) {String str = "curStaff[25].staff454Name12";getSplitNums(str);}private static String getSplitNums(String str){String regExp="[^0-9]"; // 反向字符集。匹配未包含的数字,替换着里面的数字Pattern pattern = Pattern.compile(regExp);Matcher matcher = pattern.matcher(str);List<String> strList = new ArrayList<>();// 用一个字符进行替换,逗号,空格或是特殊字符String nums = matcher.replaceAll(",").trim();//以逗号为分割符在讲数字存入一个字符串数组中String[] strArr = nums.split(",");System.out.println("nums "+nums);for (String single: strArr) {if(single.length() > 0){strList.add(single);}}System.out.println("result: "+strList.toString());return nums;}

总结:

​ 使用正则表达式的时候,主要是对“正则表达式语法”要熟悉,使用的话,没有想法的话就网上查查,理解后,再实践操作一遍。

另外一种获取数字的方式 获取双引号里面的数字

java 正则表达式 查找数字相关推荐

  1. java正则表达式匹配数字范围_在java中怎么利用正则表达式匹配数字

    在java中怎么利用正则表达式匹配数字 发布时间:2020-12-03 17:47:12 来源:亿速云 阅读:58 作者:Leah 在java中怎么利用正则表达式匹配数字?针对这个问题,这篇文章详细介 ...

  2. java 正则表达式 中文数字和字母_Java中过滤出字母、数字和中文的正则表达式 | 学步园...

    1.Java中过滤出字母.数字和中文的正则表达式 (1)过滤出字母的正则表达式 [^(A-Za-z)] (2)过滤出数字的正则表达式 [^(0-9)] (3)过滤出中文的正则表达式 [^(\\u4e0 ...

  3. java 正则表达式匹配数字_java正则表达式匹配所有数字的案例

    用于匹配的正则表达式为 :([1-9]\d*\.?\d*)|(0\.\d*[1-9]) ( [1-9] :匹配1~9的数字: \d :匹配数字,包括0~9: * :紧跟在 \d 之后,表明可以匹配零个 ...

  4. java 正则表达式 中文数字和字母_Java中过滤出字母、数字和中文的正则表达式...

    1.Java中过滤出字母.数字和中文的正则表达式 (1)过滤出字母的正则表达式 [^(A-Za-z)] (2)过滤出数字的正则表达式 [^(0-9)] (3)过滤出中文的正则表达式 [^(\\u4e0 ...

  5. Java正则表达式校验数字、字母及特殊字符

    一.校验数字的表达式 1.数字:^[0-9]*$ 2.n位的数字:^\d{n}$ 3.至少n位的数字:^\d{n,}$ 4.m-n位的数字:^\d{m,n}$ 5.零和非零开头的数字:^(0|[1-9 ...

  6. java正则表达式 字母数字下划线_字母数字下划线常用正则表达式

    1.由数字.26个英文字母或者下划线组成的字符串: ^[0-9a-zA-Z_]{1,}$ 2.非负整数(正整数 + 0 ): ^/d+$ 3. 正整数: ^[0-9]*[1-9][0-9]*$ 4.非 ...

  7. java正则表达式匹配数字和小数点,快来收藏!

    1.为什么要使用分布式锁 使用分布式锁的目的,无外乎就是保证同一时间只有一个客户端可以对共享资源进行操作. 1.1举一个很长的例子 系统 A 是一个电商系统,目前是一台机器部署,系统中有一个用户下订单 ...

  8. Java正则表达式过滤出字母、数字和中文

    Java中过滤出字母.数字和中文的正则表达式 过滤出字母的正则表达式 [^(A-Za-z)] 过滤出 数字 的正则表达式 [^(0-9)] 过滤出 中文 的正则表达式 [^(\\u4e00-\\u9f ...

  9. Java 字符串的数字校验:isNumeric,isNumericSpace和正则表达式,对比分析

    导读 数字类型的判断是项目里常见的场景,相比一大串的非空,instanceof 以及大于小于0的判断,我更倾向于使用工具类 StringUtils 或者 正则表达式 来实现功能,追求代码的简洁和高效. ...

最新文章

  1. 采集音频和摄像头视频并实时H264编码及AAC编码
  2. jquery生成一个li_JQuery实现ul中添加LI和删除指定的Li元素功能完整示例
  3. Webpack vs Rollup
  4. 计算机网络查看路由表命令,如何查看、添加、修改、删除路由器内部的路由表项?...
  5. SpringMVC学习(五)——零配置实现SpringMVC
  6. 辛星浅谈PHP的混乱的编码风格
  7. 使用Angular依赖注入自定义SAP Spartacus的ProductAdapter
  8. 模电这么学,谁还会说不懂晶体管?
  9. UOJ #188. 【UR #13】Sanrd
  10. wxpython textctrl_wxPython TextCtrl类
  11. linux expect自动登录ssh,ftp
  12. PDFEdit编辑器使用教程为PDF增加封面
  13. 企业物流管理与最新IT技术
  14. 支付宝木马安卓短信窃取者分析
  15. C语言基础知识(学习笔记)
  16. 阿里云AI解决方案-身份证图像识别
  17. 微信小程序实现多页面
  18. 剪映专业版 for Mac(视频剪辑工具)
  19. 《天天数学》连载54:二月二十三日
  20. Kibana快速上手

热门文章

  1. 荣耀手机无法升级鸿蒙,荣耀手机不能升级鸿蒙了?博主给出升级名单
  2. php sg11加密方式,SG11加密使用、安装配置说明|技术文章|php源码加密|www.PhpJiaMi.com...
  3. JS 获取String转数组
  4. 前端基础-CSS(ps简单操作)
  5. Windows系统给文件加上备注信息
  6. 验证码识别多账号微博自动模拟登录
  7. js宏编程--wps开放平台介绍
  8. 2022无线蓝牙耳机哪个牌子好?无线蓝牙耳机排行榜
  9. 点缀精致生活 玻璃花瓶下的家居微景观
  10. 国内脑机接口最新研究 - 脑控机器人在非结构化场景执行避障任务