How can I use a regular expression to separate GET
parameters in a URI and extract a certain one? Specifically, I'm trying to get just the v=
part of a YouTube watch URI. I've come up with youtube.com\/watch\?(\w+=[\w-]+&?)*(v=[\w-]+)&?*(\w+=[\w-]+&?)*
, but that looks awfully repetitive. Is there a better (shorter?) way to do this?
2 に答える
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 に答える
0
簡略化された正規表現:
^(?:http://www.)?youtube.[^/]+?/watch?(. ?)(v=([^&]+))(. )$
于 2012-10-10T07:33:59.523 に答える