如何只取点前后的数字?

时间:2015-04-02 20:57:52

标签: java regex string parsing jsoup

抱歉我的英文。我正在使用Jsoup从网站上提取手机的用户评级。速率在span标签之间,但没有class或id,因此我使用了span标签所在的div标签。

for(int j=0; j<=3; j++){
         //get page 
        Document rate = Jsoup.connect("http://www.skroutz.gr/c/40/kinhta-thlefwna.html?order_dir=asc&page=" + j).userAgent("Mozilla").get();
        // get rate
        Elements phoneRate = rate.select("div[class=rating-wrapper]");
        //print all rates
        for(int i = 1; i<phoneRate.size(); i++){

            System.out.println("Rate: " + phoneRate.get(i).text());
        }
    }

我得到的结果是这样的:

Rate: 102.9
Rate: 44
Rate: 00
Rate: 113.1
Rate: 43
Rate: 33.3
Rate: 00
Rate: 15

评分号码在点之前和之后。有没有一种简单的方法可以只提取这些数字。

2 个答案:

答案 0 :(得分:1)

您可以使用此正则表达式来获取数字:

\d+\.?\d*

Working demo

答案 1 :(得分:1)

有效吗?

Elements phoneRate = rate.select("div[class=rating-wrapper] span");

(注意:他似乎想要span元素中的值,例如参见:http://www.skroutz.gr/c/40/kinhta-thlefwna.html?order_dir=asc&page=2