إزالة @ من رابط تويتر؟

1

لقد تمكنت من معرفة كيفية الحصول على اسم مستخدم Twitter من عنوان URL ، لكني أحتاجه لإزالة علامة @ أيضًا ، والتي لا أملك الكثير من الحظ معها.

$twitter_url = https://twitter.com/@twitter;

    if (preg_match("/^https?:\/\/(www\.)?twitter\.com\/(#!\/)?(?<name>[^\/]+)(\/\w+)*$/", $twitter_url, $regs)) {

                }

$twitterUsername = $regs['name'];

هذا جيد ولكن عرضه كـ ...

@twitter

عندما أحتاجها فقط ناقص @ ، لست متأكدًا 100٪ من كيفية القيام بذلك في التعبير العادي ، هل يمكن لأي شخص أن يساعد من فضلك؟

1 إجابة

2
افضل جواب

يمكنك إضافة اختياري @ هناك قبل name مجموعة:

'~^https?://(www\.)?twitter\.com/(#!/)[email protected]?(?<name>[^/]+)(/\w+)*$~'
                                       ^^

شاهد العرض التوضيحي للتعبير المعتاد . لذا ، إذا كان name يبدأ الجزء ب @ ، سيتم استهلاكه مع الاختيارية (ولكن الجشع) @? نمط فرعي ، و (?<name>[^\/]+) سيأخذ الجزء المتبقي من عنوان URL الفرعي إلى name مجموعة.

لاحظ ال ~ قد يكون محدد regex أكثر ملاءمة هنا حتى لا يتم تجاوز الخطوط المائلة للأمام داخل النمط.

عرض PHP :

$re = '~^https?://(www\.)?twitter\.com/(#!/)[email protected]?(?<name>[^/]+)(/\w+)*$~';
$str = 'https://twitter.com/#!/@tweet';
if (preg_match($re, $str, $m)) {
    echo $m['name']; // => tweet
}
:مؤلف

أسئلة ذات صلة

فوق
قائمة طعام