Arkadaşlar
@Scarecrow; çok yardımcı oldu. Ancak şöyle bir sorun var onu çözemiyorum.
Kimisi mesela instagram ı şu şekilde paylaşıyor.
https://www.instagram.com/p/someting..._web_copy_link
https://www.instagram.com/p/someting/
https://www.instagram.com/p/someting
$var = preg_replace_callback('/<figure\s*class="media">\s*<oembed\s*url="(https:\/\/www\.(?:instagram.com)\/p\/[a-zA-Z0-9_-]+)\/"><\/oembed>\s*<\/figure>/', function($matches) {
return $matches[1];
}, $text);Bu kod sadece https://www.instagram.com/p/someting/ bunu yakalıyor. Sonundaki / olmasa bile yakalamıyor. Burada bir değişken regex kullanabilirmiyiz yine?
Yani işi zora sokan şey şu konunun başında da belirttiğim gibi hem belirli kısımları kaldırıp hemde belirli kısımları almaya calısıyoruz. Yardımcı olabilecek var mı?
/(?:http(?:s)?:\/\/)?(?:www\.)?(?:m\.)?instagram\.com(?:\/p\/)([a-zA-Z0-9_-]+)(?:\/?)(?:\?utm_source=ig_web_copy_link)?/
Bu şekilde;
https://www.instagram.com/p/someting..._web_copy_link
https://www.instagram.com/p/someting/
https://www.instagram.com/p/someting
ve bunların https veya www olmayan halini denetleyebilir. Regex zor bir şey değil ancak başta biraz saçma gözükebilir, işin mantığını kavrayınca kolay.