0

パイプ内に YouTube ビデオ リンクをインポートするフィードがありますが、当然、YouTube リンクはさまざまな形式で表示されます...

http://youtube.com/onmdclU47Us
http://youtu.be/onmdclU47Us
http://www.youtube.com/watch?feature=player_detailpage&v=onmdclU47Us

URL パラメータを使用したその他のさまざまなバリエーション。各リンクを解析して、代わりにビデオの埋め込みリンクを取得しようとしています。これは基本的に正規表現関数を使用し、代わりに youtube.com/embed/{video_ID} に交換しています。

ただし、これはすべてのインスタンスで機能するわけではありません...これは私が持っているものです。

.+watch\?v=([0-9a-zA-Z-]+)

&([a-zA-Z0-9_-]+)?=([a-zA-Z0-9_-]+)?.([a-zA-Z0-9_-]+)?

.watch?feature=player_embedded&v=([0-9a-zA-Z-]+)

http://youtu.be/([0-9a-zA-Z-]+)

これらは正しいですか、それとも何か不足していますか?

4

1 に答える 1

0

前の回答は削除されました


SOの「Extract YouTube ID」の投稿をたくさん 見て、1時間以上費やしました。私が見つけたものとはまったく異なるIDを抽出するためのほぼ防弾の正規表現を思いついたと思います。サム URL でも機能します。

まず第一に、注意事項:

  1. URL は、有効な YouTube の URL であると見なされます。
  2. 実際、それだけです。他にはありません。

ここに行きます:

(?:/favicon|%3D|[/=])([\w-]{11})[^\w-]

それでおしまい。とてもシンプルです。そして、見てください - 回り道はありません。

ノート:

  1. ID はキャプチャ グループ 1 で返されます。
  2. YouTube の URL を実際に検出するために正規表現を前面に追加するのは難しくありません。
于 2013-01-25T00:25:15.497 に答える