提取两个字符串之间的数字

guolimin1118 2011-09-21 06:47:28
正则表达式如何提取两个字符串之间的数字
例如:speed=2000MHz

如何提取2000?
谢谢。
...全文
473 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
guolimin1118 2011-09-21
  • 打赏
  • 举报
回复
给分 虽然还是不太明白
(?i)什么意思
好像是取后面的字符串
有()的时候还会分组。
嘎嘎
谢谢阿宝 huntor
等人
guolimin1118 2011-09-21
  • 打赏
  • 举报
回复
[Quote=引用 12 楼 qybao 的回复:]
Java code

String s = "speed=2000MHz1024";
String num = s.replaceAll("speed\\s*=\\s*(\\d+).*", "$1"); //等号后面可能有空格的话可以这样
System.out.println(num);
[/Quote]
这个不错
等会就给分
谢谢
qybao 2011-09-21
  • 打赏
  • 举报
回复
String s = "speed=2000MHz1024";
String num = s.replaceAll("speed\\s*=\\s*(\\d+).*", "$1"); //等号后面可能有空格的话可以这样
System.out.println(num);
qybao 2011-09-21
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 guolimin1118 的回复:]
还有没有更好的办法
speed=2000MHz

后面可能还会有数字
不知道是speed后面的
[/Quote]
LZ的意思是只要speed后面的数字,其它的不要,是这样吧
for example
String s = "speed=2000MHz1024";
String num = s.replaceAll("speed=(\\d+).*", "$1");
System.out.println(num);
guolimin1118 2011-09-21
  • 打赏
  • 举报
回复
我想要精确的
speed= 数字MHz

这样子
guolimin1118 2011-09-21
  • 打赏
  • 举报
回复
还有没有更好的办法
speed=2000MHz

后面可能还会有数字
不知道是speed后面的
huntor 2011-09-21
  • 打赏
  • 举报
回复
String s = "speed=2000MHz, size=1024Mb";
String[] rs = s.split("\\D+");
for (String r:rs) {
if(!r.isEmpty()){ System.out.println(r);}
}
guolimin1118 2011-09-21
  • 打赏
  • 举报
回复
还有没有更好的方法
authorzhh 2011-09-21
  • 打赏
  • 举报
回复
又学到了。
guolimin1118 2011-09-21
  • 打赏
  • 举报
回复
谢谢了
guolimin1118 2011-09-21
  • 打赏
  • 举报
回复
正则可以写吗?
qybao 2011-09-21
  • 打赏
  • 举报
回复
1L好快

如果是字符串中有多个数字串,可以用正则来取
for example
String s = "speed=2000MHz, size=1024Mb";
Pattern p = Pattern.compile("\\d+");
Matcher m = p.matcher(s);
while (m.find()) {
System.out.println(m.group());
}
qybao 2011-09-21
  • 打赏
  • 举报
回复
for example
String s = "speed=2000MHz";
String num = s.replaceAll("\\D+", "");
System.out.println(num);
huntor 2011-09-21
  • 打赏
  • 举报
回复
"speed=2000MHz".replaceAll("\\D+","")

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧