【发布时间】:2016-12-03 11:46:52
【问题描述】:
如果可能的话,如何将 3 种正则表达式模式组合成 1 个表达式?
我想获得第一个 th 标签值 first td 标签 value 和 id 来自 a 标记,为此使用适当的正则表达式。我已经努力了一个小时才能将它们全部放在一个表达式中。解决方案是什么?
regex for th tag:
th[^>]+l">([^<]+)</th
regex for td tag:
td>([^<]+)</td
regex for a tag:
<a((?!</a).)id="([^"]+)"
我有一个类似 sn-p 的项目列表。
...
<th scope="col">1X2</th>
<th scope="col" class="goR">Odds</th>
</tr></thead>
<tbody>
<tr class="row1">
<td>Fortuna Köln</td>
<td class="prc "><label><a id="MarketGroupListComponent25-selection-38225206.1" />
...
【问题讨论】:
-
一个合适的 html 解析库怎么样,它可以为您提供更简单的提取可能性,例如:jsoup.org/cookbook/extracting-data/selector-syntax - 如果有人在 html 表中添加评论,您的正则表达式就会搞砸
-
感谢您的建议,我一定会检查一下!
-
@zapl 如果没有正确编写 html,例如使用非封闭的 p 标签,您的解析器就会出错。解析器可能是最好的解决方案,但并不总是最好的解决方案。
标签: java regex regex-greedy