java 正则表达式 查找数字 您所在的位置:网站首页 在字符串中找数字 java 正则表达式 查找数字

java 正则表达式 查找数字

2024-07-11 15:55| 来源: 网络整理| 查看: 265

正则表达式 查找数字

数字相关的常用语法: \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: false find nums: true ======= 234564 ========= matches nums: true find 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 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; } 总结:

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

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



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有