首页 / 正则 / java 正则表达式 查找数字
java 正则表达式 查找数字
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了java 正则表达式 查找数字,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2585字,纯文字阅读大概需要4分钟。
内容图文
![java 正则表达式 查找数字](/upload/InfoBanner/zyjiaocheng/604/14c0358de2834fcdae58a2a3ec43dc2a.jpg)
正则表达式 查找数字
数字相关的常用语法:
\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<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 正则表达式 查找数字全部内容,希望文章能够帮你解决java 正则表达式 查找数字所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。