2012-05-27 1 views
0

Вот часть моего документа:извлечения строка из HTTP документа с Сличителями/шаблоном

<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> от всех вхождений один за другими, потому что значения упорядочены по типу ,

Я использую этот код (в есть вся входная строка часть которого показана выше)

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)); 
     } 

, но она даже не войти в если

ответ

2

Вы должны использовать это :

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

Прочитано this для понимания, почему вы должны быть нам e find() и не matches().

+0

Спасибо - проблема решена :) – user1409656