使⽤正则提取字符串中的数字(包含整数和⼩数)1.正则表达式为:
([1-9]\d*\.?\d*)|(0\.\d*[1-9])
2.⼯具类如下:
public List<Double> getNumberFromString(String text) {
List<Double> numbers=new ArrayList<>();
String pattern="([1-9]\\d*\\.?\\d*)|(0\\.\\d*[1-9])";
// 创建 Pattern 对象
Pattern r = Patternpile(pattern);
// 现在创建 matcher 对象
Matcher matcher = r.matcher(text);
Set<String> matchStrs = new HashSet<>();
while (matcher.find()) {
//获取当前匹配的值
matchStrs.up());
}
if(matchStrs.size()==0){
return numbers;
}
for(String s:matchStrs){
try{
正则表达式提取中文double number=Double.parseDouble(s);
numbers.add(number);
}catch(Exception e){
continue;
}
}
return numbers;
}
3.测试
测试⽤例:sdsad500sd200.35dd
输出结果为:
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论