java如何使用正则表达式提取以下字符串的数字

<td>2747</td><td>50.4%</td><td>1384</td><td>1363</td><td>11-1023:24</td>这一段Html格式的字符串... <td>
2747 </td>
<td>50.4%</td>
<td>1384</td>
<td>1363</td>
<td>11-10 23:24</td>

这一段Html格式的字符串怎么用正则表达式提取里面的数字呢?全部数字,如果可以不改变数字格式的就更好了。
展开
 我来答
等待III希望
推荐于2016-08-09 · TA获得超过161个赞
知道小有建树答主
回答量:163
采纳率:0%
帮助的人:125万
展开全部
String s = "<td>2747</td><td>50.4%</td><td>1384</td><td>1363</td><td>11-10 23:24</td>";
Pattern p = Pattern.compile("(?:<td>)(.*?)(?:</td>)");
Matcher m = p.matcher(s);
while(m.find()) {
System.out.println(m.group(1));
}
追问

大神,你的答案的字符串是经过去空格处理后才能把全部数字提取出来的,如果要在原来的数据那处理要怎么写呢?我测试了你的表达式,发现2747这个数字没提取到

追答
可以将.*换成[\\s\\S]*
百度网友f9dfb0d
2015-03-31 · TA获得超过136个赞
知道小有建树答主
回答量:137
采纳率:0%
帮助的人:167万
展开全部
观察后会发现只有3中数据类型,整数,百分数,日期(如果还要保留原有的数字格式的话)

Pattern regex1 = Pattern.compile("^d*\\.?\\d*%?$");//匹配整数 小数 分数
Pattern regex2 = Pattern.compile(“^d{1,2}-d{1,2}\sd{1,2}:d{1,2}$”);//匹配日期
ps:我没测过,大致思路是这样
追问
谢谢你的回答,但我刚刚开始学习正则表达式,还不是很会用,最好是能给出直接匹配到的答案可以让我参考下。
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式