正则表达式如何提取两个字符串之间的字符串

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

如何提取2000?
谢谢。
...全文
12242 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
guolimin1118 2011-09-21
  • 打赏
  • 举报
回复
意思也差不多明白了
正则还没有入门那,
感觉用的不多
不用心思真不好搞。
guolimin1118 2011-09-21
  • 打赏
  • 举报
回复
"(?i)(?<=speed=)(\\d*)"
这样可以了
不过不知道啥意思
大神给解释下
谢谢
guolimin1118 2011-09-21
  • 打赏
  • 举报
回复
等火龙果大神那

你这个太经典了
整个不太经典的来。
  • 打赏
  • 举报
回复
public String get() {
String str = "speed=2000MHz";
return "2000";
}
licip 2011-09-21
  • 打赏
  • 举报
回复
Pattern p = Pattern.compile("\\d+");
Matcher m = p.matcher(arg0);

if(m.find())
String num = m.group(0);
这样不是取到数据了吗?
TKD03072010 2011-09-21
  • 打赏
  • 举报
回复
正则 果然是好东西
fainfy 2011-09-21
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 guolimin1118 的回复:]

好像不能提取2000
提取到的是speed=2000
[/Quote]
m.group(1)
softroad 2011-09-21
  • 打赏
  • 举报
回复
请举一系列例子
qybao 2011-09-21
  • 打赏
  • 举报
回复
String s = "speed=2000MHz1024";
String num = s.replaceAll("speed\\s*=\\s*(\\d+).*", "$1");
System.out.println(num);
guolimin1118 2011-09-21
  • 打赏
  • 举报
回复
"(?i)(?<=speed=)(\\d*)"
这样可以了
不过不知道啥意思
guolimin1118 2011-09-21
  • 打赏
  • 举报
回复
好像不能提取2000
提取到的是speed=2000
fainfy 2011-09-21
  • 打赏
  • 举报
回复

String str = "speEd=2000MHz";
Pattern p = Pattern.compile("(?i).*?=(\\d*)");
Matcher m = p.matcher(str);
m.find();
System.out.println(m.group(1));
guolimin1118 2011-09-21
  • 打赏
  • 举报
回复
(?i)(?<=speed=)MHZ
类似这样的
不过死活不出来啊

62,614

社区成员

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

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