2012-05-27 293 views
0

這裏是我的文檔的一部分:提取字符串匹配/模式

<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