我有以下HTML代码,我需要解析它以检索玩家名称和他已经得分的运行。 在这种情况下,它是'罗斯泰勒'和9。 解析此信息的最佳方法是什么?不想使用HTML解析器。 REGEX是最好的方式(我知道人们对此已经死了!但我只想要这些2位信息,因此不想使用解析器)? 我一直绞尽脑汁想知道如何弄清楚html文件中玩家名称的位置以及随后得分的行。 下面的HTML注释部分是硬编码部分。我可以到达这个地方。然后检索标签之间的名称。这是一个很好的方法吗? 另外如何在下一行中检索运行部分?
<!-- <a href="javascript:void(0);" onClick="return showHwkTooltip(this, 'lvpyrbat1');" class="livePlayerCurrent">*Luke Woodcock</a>-->
<a href="/icc_cricket_worldcup2011/content/current/player/38920.html" target="_blank" class="livePlayerCurrent" title="view the player profile for Ross Taylor">
*Ross Taylor
</a> <span style="margin-left:5px;" title="left-hand bat">(lhb)</span >
</td >
<td><b>9</b></td>
<td>9</td>
<td>1</td>
<td>0</td>
<td>100.00</td>
<td></td>
<td colspan="3" align="left"><span class="batStyl">striker</style></td>
<td></td>
<td colspan="8"></td>
</tr>
如果您需要更多信息,请与我们联系。
此致 萨姆
答案 0 :(得分:9)
答案 1 :(得分:1)
请考虑使用适当的工具来完成工作,例如html/xml parser
而不是regex
。
如果真的想要使用正则表达式进行操作,您可以尝试以下方法:
提取分数
(?<=\\<b\\>)\\d+(?=\\</b\\>)
提取玩家名称
(?<=\\>)[^\\<]+(?=\\</a\\>)
第二个正则表达式假设您通过删除注释标记之间的anchortag来清理xml。
<!-- ... -->
它的作用是在任何anchortag中提取值。这是使用正则表达式时的一个基本限制,它不是上下文感知的。
答案 2 :(得分:0)
对于它的价值,您还可以查看Jsoup。我在我的项目中使用它,它很好地处理格式错误的HTML。我相信这可能是我使用它的唯一原因;)
此致 EZFrag