فهم وظيفة حدود الكلمات في التعبيرات العادية في PHP
عند محاولة تنفيذ حدود الكلمات لمطابقة كلمات معينة في المحتوى باستخدام التعبيرات العادية في PHP، من الضروري فهم سلوكهم الدقيق. ومع ذلك، أثناء الاختبار، قد تظهر نتائج غير متوقعة.
في المثال المقدم، تم استخدام التعبير "^|\b@nimal/i" لمطابقة كلمة "cat" فقط إذا ظهرت في بداية كلمة أخرى. ومع ذلك، كانت النتائج غير بديهية، مما أدى إلى ارتباك حول كيفية تحديد PHP لحدود الكلمات.
يكمن مفتاح فهم مطابقة حدود الكلمات في طبيعة \b. يتطابق هذا المؤشر عند نقطة الانتقال بين \w (حرف الكلمة) و\W (حرف غير كلمة). لكي تكون المطابقة ناجحة، يجب أن يكون هناك حرف كلمة قبل الحرف محل الاهتمام.
فكر في المثال الأول:
preg_match("/(^|\b)@nimal/i", "something@nimal", $match);
يطابق التعبير حد الكلمة بين "g" و"@"، حيث أن "g" عبارة عن حرف كلمة و"@" ليست كلمة الحرف.
في المثال الثاني:
preg_match("/(^|\b)@nimal/i", "something!@nimal", $match);
لا يحدث أي تطابق لأنه لا يوجد حرف كلمة قبل "@". كلاهما "!" و"@" عبارة عن أحرف ليست كلمات.
لتصحيح المشكلة، ابدأ بحرف كلمة قبل الحرف الذي ترغب في مطابقته. وهذا يضمن وجود حد صالح للكلمة.
تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.
Copyright© 2022 湘ICP备2022001581号-3