JAVA如何通过正则表达式获取文本中数字

如何通过正则表达式获取字符串中的数字

实例:

Java代码   收藏代码
  1. public void Test0108_03()  
  2.     {  
  3.         String input="winnt 5.1 internet winnta 5.3";//如何获得5.1  
  4.         String regex="winnta";  
  5.         double version=Double.parseDouble(getDigitAfter(input, regex));  
  6.         System.out.println("version:"+version);  
  7.     }  
  8.     public static String getDigitAfter(String input, String str)  
  9.     {  
  10.         Pattern p = Pattern.compile(str+"\\s*(\\d[\\.\\d]*\\d)");  
  11.         Matcher m = p.matcher(input);  
  12.         boolean result = m.find();  
  13.         String find_result = null;  
  14.         if (result)  
  15.         {  
  16.             find_result = m.group(1);  
  17.         }  
  18.         return find_result;  
  19. }  

 伦理片 http://www.dotdy.com/  

获取740981

Java代码   收藏代码
  1. //"content": "????740981????????????30????????????????????????"  
  2.        String content = "????740981????????????30????????????????????????";  
  3.        Pattern p = Pattern.compile("[^\\d]+([\\d]+)[^\\d]+.*");  
  4.        Matcher m = p.matcher(content);  
  5.        boolean result = m.find();  
  6.        String find_result = null;  
  7.        if (result) {  
  8.            find_result = m.group(1);  

  1.        }  

用于匹配的正则表达式为 :([1-9]\d*\.?\d*)|(0\.\d*[1-9])

(

[1-9] :匹配1~9的数字;

\d :匹配数字,包括0~9

* :紧跟在 \d 之后,表明可以匹配零个及多个数字;

\. :匹配小数点

? :紧跟在 \. 之后,表明可以匹配零个或一个小数点;

0 :匹配一个数字0

)
其中的 [1-9]\d*\.?\d* 用以匹配诸如:1、23、34.0、56.78 之类的非负的整数和浮点数

其中的 0\.\d*[1-9] 用以匹配诸如:0.1、0.23、0.405 之类的非负浮点数

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值