如何从字符串中提取所有IMDb ID

时间:2019-08-17 14:18:37

标签: regex

如果要提取IMDdID,我有一段文本要搜索IMDb链接。

这是一个示例字符串:

http://www.imdb.com/Title/tt2618986
http://www.google.com/tt2618986
https://www.imdb.com/Title/tt2618986
http://www.imdb.com/title/tt1979376/?ref_=nv_sr_1?ref_=nv_sr_1

我只想从第1、3和4行提取2618986

这是我当前正在使用但没有运气的正则表达式行:

(?:http|https)://(?:.*\.|.*)imdb.com/(?:t|T)itle(?:\?|/)(..\d+)(.+)?

https://regex101.com/r/ERtoRz/1

2 个答案:

答案 0 :(得分:2)

如果您只对提取ID感兴趣,那么2618986的注释都与tt2618986不符,因此没有任何注释。在第四个小鸟答案的基础上,您需要将tt2618986分为两部分-tt2618986。因此,不用([a-zA-Z0-9]+),而要使用[a-zA-Z]+([0-9]+)

^https?://www\.imdb\.com/[Tt]itle[?/][a-zA-Z]+([0-9]+)

Regex Demo

然后您可以通过呼叫第1组来提取2618986部分。

答案 1 :(得分:1)

此表达式可能只是提取那些所需的数字:

^(?:https?://)(?:www\.)?imdb\.com/title/[a-z]+([0-9]+).*$

  

如果您想探索/简化/修改表达式,可以   在右上角的面板上进行了说明   regex101.com。如果您愿意,   也可以在this link中观看它的匹配方式   针对一些样本输入。