java模式过滤器

时间:2012-11-20 02:46:22

标签: java

我需要创建java模式来过滤数据,如13.6Gb,12MB,15.5Kb 我使用那些代码

  Pattern   p   =   Pattern.compile("(\\d+)(\\w+)"); 
  Matcher   m   =   p.matcher(content);
  String   num_letter   =   m.group(1); 
  String    union  =   m.group(2); 

但它无法检测十进制数,因此如何修改此模式

3 个答案:

答案 0 :(得分:1)

尝试为小数部分添加条件匹配:

Pattern.compile("(\\d+(?:[.]\\d+)?)(\\w+)");

请注意非捕获组用于小数部分。

答案 1 :(得分:0)

有条件十进制匹配的变体:

Pattern.compile("(\\d+\\.?\\d+?)+(\\w+)");

答案 2 :(得分:0)

如果你正在使用eclipse,我更喜欢使用像http://myregexp.com/eclipsePlugin.html这样的工具 - 这样可以轻松实现这一点。

注视你的,我会说像(\\d+(\\.?(\\d+))?)之类的东西,然后你可以看到你有多少匹配组,然后再把你想要的那些组合起来。或者,使用命名捕获组将更具可读性。

-Ryan