我正在尝试修改以下正则表达式以强制域为youtube
or youtu.be
。这个原始的正则表达式旨在在第二组中提供视频的 ID 以供观看。
例如lVIGhYMwRgs
我目前的测试清单
http://www.youtube.com/watch?v=lVIGhYMwRgs&feature=feedrec_grec_index
http://www.youtube.com/v/lVIGhYMwRgs?fs=1&hl=en_US&rel=0
http://www.youtube.com/watch?v=lVIGhYMwRgs#t=0m10s
http://www.youtube.com/embed/lVIGhYMwRgs?rel=0
http://www.youtube.com/watch?v=lVIGhYMwRgs
http://youtu.be/lVIGhYMwRgs
http://www.example.com/media/embed/83295164
第一个正则表达式
(youtu.be\/|v\/|u\/\w\/|embed\/|watch\?v=|\&v=)([^#\&\?]*)
问题是example.com
匹配!
因此,我尝试将正则表达式修改为以下内容,以确保在 url 中youtube
或youtu.be
在 url 中:
((youtu.be\/)|(youtube.com\/))(v\/|u\/\w\/|embed\/|watch\?v=|\&v=)([^#\&\?]*)
虽然这解决了我的问题,但它与urlexample.com
不匹配。youtu.be
我也尝试过这个正则表达式,因为我认为我的问题是youtu.be
只有一个斜杠,然后是 id。
(youtube.com\/)(youtu.be|v\/|u\/\w\/|embed\/|watch\?v=|\&v=)([^#\&\?]*)
然后我尝试了这个,它适用于youtu.be
其他东西。
((youtube.com\/)|(v\/|u\/\w\/|embed\/|watch\?v=|\&v=)|(youtu.be\/))([^#\&\?]*)
如何修复我的修改?