كيفية استخدام الدالة preg_match_all () في PHP

Kyfyt Astkhdam Aldalt Preg Match All Fy Php



preg_match_all () هي وظيفة مضمنة في PHP تستخدم لمطابقة النمط المحدد في سلسلة. يمكنك استخدام هذه الوظيفة لإجراء مطابقات تعبير عادي واستخراج البيانات من السلاسل. يمكن أن يوفر الوقت والجهد في الحالات التي تحتاج فيها إلى البحث عن تكرارات متعددة للنمط ويستخدم على نطاق واسع في تحليل النص وتطبيقات استخراج البيانات في PHP.

بناء الجملة

ما يلي هو بناء الجملة لاستخدام preg_match_all في PHP:







preg_match_all ( نمط و مدخل و اعواد الكبريت و الأعلام و عوض )

ال preg_match_all يقبل المعلمات التالية ، ثلاثة منها إلزامية واثنتان اختياريتان:



  • نمط : إنها المعلمة الإجبارية ؛ يحتوي على التعبير العادي الذي يحتاج إلى البحث.
  • مدخل : الثانية هي أيضًا معلمة إلزامية ، حيث إنها السلسلة التي يتم إجراء البحث فيها.
  • اعواد الكبريت : يخزن الإخراج في المصفوفة التي تحتوي على كل التطابقات.
  • الأعلام : يصف كيفية هيكلة مصفوفة البحث أو المطابقات. يعدل سلوك البحث عن الوظيفة. يمكن استخدام العلامات التالية:
  • عوض : هي المعلمة الاختيارية التي تحدد موضع بدء البحث.
علَم وصف
PREG_PATTERN_ORDER تحتوي المصفوفة الناتجة على جميع مطابقات المصفوفة لكل عنصر من عناصر التعبير النمطي.
PREG_SET_ORDER يحتوي كل عنصر من عناصر مصفوفة المطابقات على مطابقات من كل مجموعة لإحدى متطابقات السلسلة التي تم العثور عليها.
PREG_OFFSET_CAPTURE تقوم بإرجاع التطابقات مع مواضع إزاحة البايت المقابلة لها في سلسلة الموضوع.
PREG_UNMATCHED_AS_NULL سيتم الإبلاغ عن الأنماط غير المتطابقة على أنها NULL.

مثال 1

ضع في اعتبارك المثال التالي لاستخدام preg_match_all () تعمل في PHP. في هذا الكود ، نحن نبحث عن الكلمة لينكس في السلسلة. تقوم هذه الوظيفة بإخراج عدد التطابقات التي تم العثور عليها مقابل الكلمة لينكس :



<؟ php

سلسلة $ = 'مرحبًا عشاق Linux ، مرحبًا بكم في LinuxHint!' ؛

نمط $ = '/ Linux /' ؛

مباريات $ = مجموعة مصفوفة ( ) ؛

preg_match_all ( نمط $ و سلسلة $ و مباريات $ ) ؛

print_r ( مباريات $ [ 0 ] ) ؛

؟>





مثال 2

في رمز المثال هذا ، نبحث عن الكلمة E في السلسلة. يتم استخدام الصغير i لجعل البحث غير حساس لحالة الأحرف. سيعيد جميع تكرارات السلسلة لكلمة E أو e:

<؟ php

سلسلة $ = 'مرحبا بكم في الولايات المتحدة الأمريكية.' ؛

$ patternRex = '/ E / i' ؛

$ matchFound = preg_match_all ( $ patternRex و سلسلة $ و مباريات $ ) ؛

لو ( $ matchFound ) {

صدى صوت '
'  ؛ 

print_r ( مباريات $ ) ؛

}

؟>



مثال 3

إذا كان النمط الذي تبحث عنه غير موجود في السلسلة ، ستعيد الوظيفة خطأ ، مما يشير إلى وجود خطأ. للتعامل مع هذا ، يمكنك استخدام عبارات if-else. إذا لم يتم العثور على النمط ، يمكنك طباعة رسالة باستخدام العبارة else لإبلاغ المستخدم بعدم العثور على النمط.

<؟ php

سلسلة $ = 'PHP هي لغة برمجة نصية شائعة' ؛

$ patternRex = '/يتبول/' ؛

$ matchFound = preg_match_all ( $ patternRex و سلسلة $ و مباريات $ ) ؛

لو ( $ matchFound ) {

صدى صوت '
'  ؛ 

صدى صوت 'وجد تطابق.' ؛

print_r ( مباريات $ ) ؛

} آخر {

صدى صوت 'لا يوجد تطابق.' ؛

}

؟>

ملحوظة : ال <قبل> العلامة في الكود أعلاه لتنسيق الإخراج.

الحد الأدنى

التعبيرات العادية هي أداة فعالة للبحث عن النص ومعالجته في PHP. ال preg_match_all () الوظيفة عبارة عن دالة PHP مضمنة تُستخدم لتنفيذ مطابقة تعبير عادي ضد سلسلة واسترداد جميع تكرارات النمط وإذا لم يكن النمط موجودًا ، فسيعيد القيمة false. فهم preg_match_all () ستساعد الوظيفة المستخدمين على التعامل مع البيانات النصية ومعالجتها بشكل أفضل في PHP.