使用匹配器/模式从http文档中提取字符串

时间:2012-05-27 10:35:12

标签: java android regex matcher

以下是我的文件的一部分:

<td align="right" valign="top"><b>Име:</b></td> <td align="left" valign="top">Павлин Евгениев Тишев</td>
<td rowspan="7" align="center" valign="top">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</td>
<td align="right" valign="top"><b>Състояние:</b></td>
<td align="left" valign="top">Редовен</td>

我想逐个从所有匹配项中提取<td align="left" valign="top"></td>之间的字符串,因为这些值是按类型排序的。

我正在使用此代码( in 是整个输入字符串部分如上所示)

Pattern p = Pattern.compile("<td align=\"left\" valign=\"top\">(.*?)</td>");
        Matcher m = p.matcher(in);

        if (m.matches()) {
            student.setName(m.group(1));
            student.setState(m.group(2));
        }

但它甚至没有进入 if

1 个答案:

答案 0 :(得分:2)

你应该用这个:

while (m.find()) {
            student.setName(m.group(1));
            student.setState(m.group(2));
        }

阅读this,了解为什么要使用find()而不是matches()