0

我正在使用 OutWit Hub 从网站上抓取公司名称。

在某些页面中,HTML 标签是这样的:

<p style="font-weight: bold;">COMPANY NAME</p>

在其他页面中:

<span style="font-weight: bold;">COMPANY NAME</span>

所有页面都使用上述两个选项之一,但绝不会同时使用两者。

如果您不熟悉 OutWit Hub,它的工作原理是在您想要的信息之前询问标记,然后询问标记。

我正在尝试创建一个将检索公司名称的正则表达式,无论之前还是之后使用这些标记中的哪一个。

到目前为止,我已经为“之前”标签尝试过这个,但它不起作用:

/[<p style="font-weight: bold;">]|[<p>Name of Company: <span style="font-weight: bold;">]/

任何人都可以帮忙吗?

4

2 回答 2

1

去掉方括号 ( [...]),它们用于指定字符类或字符集,而不是字符序列。

/<p style="font-weight: bold;">|<p>Name of Company: <span style="font-weight: bold;">/

如需帮助理解和调试正则表达式,请查看Regexpr

然而,正如其他人所评论的那样,正则表达式并不是解析 HTML 的最可靠方法。例如,你怎么知道页面上永远不会有任何其他段落或跨度样式为font-weight: bold

如果您了解 C#,那么HTML Agility Pack是一个用于解析 HTML 的有用库。不过,这可能对您的需求有点过分了。

于 2013-05-02T16:50:14.353 回答
0

您可以使用此正则表达式并获取第二组数据来获取公司名称:

^(<p style="font-weight: bold;">|<span style="font-weight: bold;">)(.*)(</p>|</span>)
于 2013-05-02T17:00:11.510 回答