كيف يمكنني الحصول على التطابقات عند استخدام preg_replace في PHP؟

StackOverflow https://stackoverflow.com/questions/1746

سؤال

أحاول الحصول على الأحرف الكبيرة من بضع كلمات ولفها في علامات الامتداد.انا استخدم preg_replace لأغراض الاستخراج والتغليف، لكنه لا يخرج أي شيء.

preg_replace("/[A-Z]/", "<span class=\"initial\">$1</span>", $str)
هل كانت مفيدة؟

المحلول

تحتاج إلى وضع النمط بين قوسين /([A-Z])/, ، مثله:

preg_replace("/([A-Z])/", "<span class=\"initial\">$1</span>", $str)

نصائح أخرى

\0 سيطابق أيضًا التعبير المطابق بالكامل دون إجراء التقاط صريح باستخدام الأقواس.

preg_replace("/[A-Z]/", "<span class=\"initial\">\\0</span>", $str)

كما هو الحال دائما، يمكنك الذهاب إلى php.net/preg_replace أو php.net/<مهما كان مصطلح البحث> للبحث في الوثائق بسرعة.اقوال الوثائق:

يشير \0 أو $0 إلى النص المطابق للنمط بأكمله.

من وثائق preg_replace على php.net:

إستبدال قد تحتوي على مراجع من النموذج n أو (منذ PHP 4.0.4) $ n ، مع النموذج الأخير هو النموذج المفضل.سيتم استبدال كل مرجع بهذا النص الذي تم التقاطه بالنمط غير الأقواس.

انظر مثال فلوبا.

استخدم الأقواس حول الالتقاط المطلوب.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top