【发布时间】:2012-07-26 16:07:23
【问题描述】:
我有这些正则表达式来从一个人那里获得奥斯卡奖、获奖和提名(例如Cote de Pablo)。
preg_match('/([0-9]+) Oscars/', $url, $oscars);
preg_match('/([0-9]+) ([win|wins]+)/', $url, $wins);
preg_match('/([0-9]+) nominations/', $url, $nominations);
虽然奖项比这三个还多,但我想知道如何使用两个分开的正则表达式来获得一个人和一部电影或电视剧的所有奖项?
提前致谢。
【问题讨论】:
-
请不要使用 RegEx 解析 HTML,因为它会 drive you į̷̷͚̤̤̖̱̦͍͗̒̈̅̄̎n̨͖͓̹͍͎͔͈̝̲͐ͪ͛̃̄͛ṣ̷̵̞̦ͤ̅̉̋ͪ͑͛ͥ͜a̷̘͖̮͔͎͛̇̏̒͆̆͘n͇͔̤̼͙̩͖̭ͤ͋̉͌͟eͥ͒͆ͧͨ̽͞҉̹͍̳̻͢。请改用HTML parser。
-
正则表达式可能会在编程过程中引起一些(阅读:很多!!)挫折,是的:PI 会尝试你的建议,但我也想知道正则表达式在我的“小”的问题。
-
从奖项页面解析 HTML(例如imdb.com/name/nm0000129/awards),它似乎在表格中,而不是使用正则表达式,这肯定会比它的价值更令人头疼。还应该注意的是,从技术上讲,IMDB does not allow screen scraping
-
@ernie 屏幕抓取是非常真实的。我不记得其他 IMDb 类似网站的名称(...MDB 的东西)是什么,所以我现在使用 IMDb。