以下是我的文件的一部分:
<td align="right" valign="top"><b>Име:</b></td> <td align="left" valign="top">Павлин Евгениев Тишев</td>
<td rowspan="7" align="center" valign="top"> </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
答案 0 :(得分:2)
你应该用这个:
while (m.find()) {
student.setName(m.group(1));
student.setState(m.group(2));
}
阅读this,了解为什么要使用find()
而不是matches()
。