1

如何使用正则表达式来分隔GETURI 中的参数并提取某个参数?具体来说,我试图获取v=YouTube 观看 URI 的一部分。我想出了youtube.com\/watch\?(\w+=[\w-]+&?)*(v=[\w-]+)&?*(\w+=[\w-]+&?)*,但这看起来非常重复。有没有更好(更短?)的方法来做到这一点?

4

2 回答 2

0

一个简化的正则表达式:

^(?:http://www.)?youtube.[^/]+?/watch?(. ?)(v=([^&]+))(. )$

于 2012-10-10T07:33:59.523 回答
0

我知道有很多类似的问题,但没有一个完全符合我的要求。我正在寻找能够提取视频 ID 的东西——无论它是参数列表中的第一个、最后一个还是隐藏在其他参数列表中。我所见过的还没有像那样工作。

作为参考,我正在使用这个 Web 应用程序进行测试,以及这组测试 URI:

http://www.youtube.com/watch?v=XXXXXXXXXXX
http://www.youtube.com/watch?v=XXXXXXXXXXX&feature=results_video&playnext=1&list=XXXXXXXXXXXXXXXXXX
http://www.youtube.com/watch?feature=player_embedded&v=XXXXXXXXXXX#!
http://www.youtube.com/watch?annotation_id=annotation_xxxxxx&feature=iv&src_vid=XXXXXXXXXXX&v=XXXXXXXXXX

各位 Stack Exchangers,我提出以下正则表达式来解决这个问题:
youtube.com\/watch\?(\S*)v=([\w-]+)

于 2012-10-10T08:18:57.453 回答