我正在尝试修改以下正则表达式以强制域为youtubeor 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\/))([^#\&\?]*)

如何修复我的修改?

