日期:2014-05-20  浏览次数:20711 次

提取两个字符串之间的数字
正则表达式如何提取两个字符串之间的数字
例如:speed=2000MHz

如何提取2000?
谢谢。


------解决方案--------------------
"speed=2000MHz".replaceAll("\\D+","")
------解决方案--------------------
for example
Java code
String s = "speed=2000MHz";
String num = s.replaceAll("\\D+", "");
System.out.println(num);

------解决方案--------------------
1L好快

如果是字符串中有多个数字串,可以用正则来取
for example
Java code
String s = "speed=2000MHz, size=1024Mb";
Pattern p = Pattern.compile("\\d+");
Matcher m = p.matcher(s);
while (m.find()) {
    System.out.println(m.group());
}

------解决方案--------------------
又学到了。
------解决方案--------------------
Java code
String s = "speed=2000MHz, size=1024Mb";
String[] rs = s.split("\\D+"); 
for (String r:rs) {
    if(!r.isEmpty()){    System.out.println(r);}
}

------解决方案--------------------
探讨
还有没有更好的办法
speed=2000MHz

后面可能还会有数字
不知道是speed后面的

------解决方案--------------------
Java code
String s = "speed=2000MHz1024";
String num = s.replaceAll("speed\\s*=\\s*(\\d+).*", "$1"); //等号后面可能有空格的话可以这样
System.out.println(num);