0

我想在这里提取一些信息是我的正则表达式

<tr>
<td>([^<]+)<i><a href="([^<]+)" title="([^<]+)">([^<]+)<\/a><\/i><sup id="([^<]+)" class="([^<]+)"><a href="([^<]+)"><span>[<\/span>1<span>]<\/span><\/a><\/sup><\/td>
<td><a href="([^<]+)" title="([^<]+)">([^<]+)<\/a><\/td>
<td><a href="([^<]+)" title="([^<]+)">([^<]+)<\/a><\/td>
<td>([^<]+)<\/td>
<td>([^<]+)<\/td>
</tr>

这是示例html

<tr>
<td><i><a href="/wiki/3Xtreme" title="3Xtreme">3Xtreme</a></i><sup id="cite_ref-18" class="reference"><a href="#cite_note-18"><span>[</span>18<span>]</span></a></sup></td>
<td><a href="/wiki/989_Studios" title="989 Studios">989 Studios</a></td>
<td><a href="/wiki/989_Studios" title="989 Studios">989 Studios</a></td>
<td>1999-03-31<sup>NA</sup></td>
<td>NA</td>
</tr>

截至目前,我只想获取数据以查找匹配项。您能看出它与此不匹配的任何原因吗?

对于所有的仇恨者......我不关心你是否应该在 html 上使用正则表达式的选择......对于这种情况,它会很好用。我有一页,我需要的数据在一个表中。一旦我可以获得数据,我会将其保存到我的数据库中,并且永远不必再次使用正则表达式。如果您的评论或答案是关于您使用 html 的正则表达式的选项,那就太好了。不要发布。

4

2 回答 2

1

...第二行:

<td>([^<]+)<i>

不能指望匹配:

<td><i>

当您在标签之间没有任何内容时,您放置了一个相当于“{1,}”的“+”。没有检查你的正则表达式的其余部分,但无论如何它不能工作。

编辑:
还请更正"([^<]+)"等等(我希望你明白为什么)......并在你更正时编辑你的正则表达式。

编辑2:
看到这是一场灾难(对不起,但这是事实:/):请考虑用简单的(。*?)替换所有不适用于所有情况的([^<] +)东西

编辑 3:
[ 和 ] 必须转义。(\d 将帮助您捕捉数字)

于 2013-03-31T20:38:28.293 回答
1
<span>[<\/span>1<span>]<\/span>

这里有很多问题:您必须转义括号,显然 1 不会匹配 18

于 2013-03-31T20:59:47.867 回答