使用正则表达式

时间:2015-05-28 17:59:14

标签: java regex

给出字符串:

<td>4</td><td>punz of damage</td><td><img src='images/no.png'></img></td><td>May 26, 2015 10:28:12 PM</td><td>30</td><td>Nov 26, 2017 10:28:12 PM</td>

我希望能够仅返回第二个元素之间的值。

我将如何做到这一点?到目前为止,我有以下内容:

    private static Pattern p = Pattern.compile("<td>(.+?)</td>");

public static String getName(String in) {
    Matcher m = p.matcher(in);

    if (m.matches()) {
        return m.group(1);
    } else {
        return null;
    }
}

1 个答案:

答案 0 :(得分:1)

在循环中使用matches而不是private static Pattern p = Pattern.compile("<td>(.+?)</td>"); public static String getName(String in) { Matcher m = p.matcher(in); for (i=0; i<1 && m.find(); i++); if (i==0) { return null; } else { return m.group(1); } } 并保留一个计数器:

import base
import functions


class DietPizza(base.BasePizza):
    @staticmethod
    def get_ingredients():
        return functions.istrue()

警告:使用正则表达式解析HTML / XML可能容易出错。