reg exp for youtube link
-
19-09-2019 - |
سؤال
في نظام أقوم بتطويره، أحتاج إلى التعرف على رابط YouTube بالتنسيق التالي
يوتيوب] عنوان URL YouTube [/ YouTube
في اللحظة التي وصلت فيها إلى هذا التعبير العادي:
#\[youtube\]http://www.youtube\.(.*)/watch\?v=([a-zA-Z0-9_-]*)\[\/youtube\]#s
ولكن هذا النمط غير قادر على التعرف على عنوان URL
موقع YouTubehttp://www.youtube.com/watch؟v=s3wxkv1vw54&feature=fvst حساب/youtube
لاحظ ال ميزة = fvst..
يمكن لبعض واحد مساعدتي في التعرف على كل url يوتيوب ممكن؟
المحلول
ماذا عن
|\[youtube\]http://www.youtube\.(.*?)/watch\?v=([a-zA-Z0-9_-]*)[%&=#a-zA-Z0-9_-]*\[\/youtube\]|s
تحرير: تغيير Regex لإبقاء معرف الفيديو فقط داخل قوسين.
نصائح أخرى
ملاحظات:
أود إجراء مباراة غير حساسة للحالة على عناوين URL (/ I)
وبعد يطابق أي شيء؛ استعمال . بدلا من ذلك لتتناسب مع عنوان URL
أيضا، "www" في عناوين Urls يوتيوب اختيارية.
استخدم (. [AZ] +) {1،2} بدلا من ". *" للمطابقة ".com"، ".co.uk"، .. بعد "Youtube"
على افتراض الجزء "والميزات" اختياري، فإن Regex سيكون:
/\[youtube\]http:\/\/(www\.)?youtube(\.[a-z]+){1,2}\/watch\?v=([a-z0-9_-]*)(&feature=([a-z]+))?\[\/youtube\]/is
على افتراض الجزء "والميزات" اختياري، ويمكن أن يكون هناك معلمات أخرى من "الميزة":
/\[youtube\]http:\/\/(www\.)?youtube(\.[a-z]+){1,2}\/watch\?v=([a-z0-9_-]*)(&([a-z]+)=([a-z0-9_-])+)*?\[\/youtube\]/is