【发布时间】:2015-01-04 13:42:35
【问题描述】:
如果可以在一个正则表达式中提取电影标题,我有 3 个字符串
<title>Airplane! (1980)</title>
<title>"24" (2001)</title>
<title>"Agents of S.H.I.E.L.D." The Magical Place (2014)</title>
到目前为止我最好的镜头是这个:
<title>(")?(.*?)(")?.*?\((\d{4})\).*?</title>
适用于“神盾局特工”和“24”,但不是“飞机!”。
我做错了什么?
尽管在 C# 程序中调用正则表达式可能不清楚,但我正在使用 RegEx
【问题讨论】:
-
飞机关闭标签丢失
/ -
你为什么使用正则表达式? XML 不是常规语言。您应该使用 XML 库。或者如果它是 HTML,那么你应该像 HtmlAgilityPack 一样。
-
您还应该使用IMDB's API 而不是检索 HTML。它会更容易使用,因为它返回 XML 而不是 HTML。 HTML 不是一种以编程方式传递数据的格式,它是一种用于可视化显示内容的标记语言。然而,XML 是一种公认的在应用程序之间传递数据的格式。
-
@hometoast 我没有说这是不可能的。我说过shouldn't be done,尤其是当有更好的选择时。
-
使用 HTML 解析器仍然需要您使用 RE 来解析单个文本节点数据,这是该任务的 99%