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

Use Preg_match Function Php



التعبير العادي هو نمط معين يمكن استخدامه لمطابقة أي سلسلة معينة والبحث فيها واستبدالها في البيانات النصية. إنها ميزة قوية لأي لغة برمجة. يتم استخدامه بشكل أساسي لإجراء أنواع مختلفة من عمليات التحقق من صحة النموذج ، مثل التحقق من صحة البريد الإلكتروني ، والتحقق من تنسيق الهاتف ، والتحقق من صحة حقول اسم المستخدم وكلمة المرور لنموذج تسجيل الدخول ، وما إلى ذلك. يمكن البحث عن أي محتوى معين للنص واستبداله باستخدام تعبير عادي نمط. ويسمى أيضًا regex أو RegExp. يتم استخدام أنواع مختلفة من الرموز لتحديد نمط regex.

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







بناء الجملة:

Int أوخاطئة المطابقة المسبقة (سلسلةنمط $وسلسلةالموضوع $ [و مجموعة مصفوفة &مباريات $ = باطل [وintأعلام $ = 0 [وintتعويض $ = 0]]])

يمكن أن تستغرق هذه الوظيفة خمس حجج. الحجة الأولى ، نمط $ ، إلزامي ، والذي يحدد نمط المطابقة. الحجة الثانية الموضوع $ ، إلزامي ، ويحتوي على بيانات السلسلة التي سيتم تطبيق النمط عليها. الحجة الثالثة مباريات $ ، اختياري ويعيد مصفوفة بناءً على المطابقة. الحجة الرابعة أعلام $ ، هو اختياري ، ويحتوي على أنواع مختلفة من قيم العلم بناءً على المطابقة. الحجة الخامسة ، تعويض $ ، اختياري ، ويمكن استخدامه لتحديد موضع بدء البحث.



مثال 1: قم بمطابقة النمط بطريقة حساسة لحالة الأحرف وغير حساسة لحالة الأحرف

يوضح المثال التالي استخدام الوظيفة preg_match () لمطابقة السلسلة بطريقة حساسة لحالة الأحرف وغير حساسة لحالة الأحرف. أنشئ ملف PHP بالنص التالي.



هنا ، يتم استخدام ثلاثة أنماط للتطبيق في ثلاث وظائف preg_match (). النمط الأول ، '/يحب/'، يستخدم لمطابقة السلسلة بطريقة حساسة لحالة الأحرف. النمط الثاني '/مثل/' ، لمطابقة السلسلة بطريقة حساسة لحالة الأحرف. النمط الثالث ، 'مثلي' ، لمطابقة السلسلة بطريقة غير حساسة لحالة الأحرف. search_pattern () يتم تعريف الوظيفة في البرنامج النصي لاستخدام وظيفة preg_match () للمطابقة ، وتقوم بطباعة الرسالة بناءً على القيمة التي تم إرجاعها لهذه الوظيفة.







// تحديد النص

نص $ = أنا أحب PHP. أنا أحب JavaScript أيضًا.؛

// تحديد ثلاثة أنواع من الأنماط

$ pattern1 = '/يحب/'؛

$ pattern2 = '/مثل/'؛

$ pattern3 = '/مثلي'؛

// تحديد وظيفة للبحث عن النمط في النص

وظيفةsearch_pattern(نمط $و سلسلة $)

{

لو( المطابقة المسبقة (نمط $و سلسلة $))

رما - طرد - قذف 'نتيجة البحث: تم العثور على تطابق للنمط -نمط $
'
؛

آخر

رما - طرد - قذف 'نتيجة البحث: لم يتم العثور على تطابق للنمط -نمط $
'
؛

}

// طباعة النص الأصلي

رما - طرد - قذف النص الأصلي هو: نص $
'
؛

// اتصل بالوظيفة ثلاث مرات لثلاثة أنماط

search_pattern($ pattern1و نص $)؛

search_pattern($ pattern2و نص $)؛

search_pattern($ pattern3و نص $)؛

؟>

انتاج | :

سيظهر الإخراج التالي بعد تشغيل البرنامج النصي من الخادم. يعرض السطر الأول النص الذي تم البحث فيه عن الأنماط. يظهر السطر الثاني إخراج النمط الأول. يظهر السطر الثالث إخراج النمط الثاني. يظهر السطر الرابع ناتج النمط الثالث.



مثال 2: تحقق من صحة عنوان URL

يوضح المثال التالي طريقة التحقق من صحة عنوان URL باستخدام وظيفة preg_match (). أنشئ ملف PHP بالنص التالي.

يتم تعيين قيمة URL في المتغير $ url للاختبار. يتم استخدام سلسلة '@ ^ (؟: https: //)؟ ​​([^ /] +)i' كنمط في وظيفة preg_match () للتحقق مما إذا كان عنوان URL صالحًا أم لا. إذا كان صحيحًا ، فسيتم طباعة اسم المضيف واسم المجال ، وإلا ستتم طباعة رسالة الخطأ.



// تحديد عنوان URL

$ url = 'https://www.linuxhint.com'؛

// تحديد النمط للتحقق من صحة عنوان URL

نمط $ ='@ ^ (؟: https: //)؟ ​​([^ /] +)i'؛

// تحقق من صحة عنوان URL أم لا

لو( المطابقة المسبقة (نمط $و $ urlو $ مباريات 1))

{

// اطبع رسالة النجاح

رما - طرد - قذف 'عنوان URL صالح.
'
؛

// طباعة المصفوفة التي تحتوي على قيم المطابقة

رما - طرد - قذف 'قيم المصفوفة هي:'؛

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

// استرداد وطباعة قيمة المضيف

مضيف $ = $ مباريات 1[1]؛

رما - طرد - قذف '
اسم المضيف هو:مضيف $'
؛

// ابحث في اسم المجال من قيمة المضيف

المطابقة المسبقة ('/ [^.-lex.europa.eu+. [^.iritu+$/'و مضيف $و مباريات 2)؛

رما - طرد - قذف '
اسم المجال هو:{$ match2 [0]}'
؛

}

آخر

{

// طباعة رسالة الخطأ

رما - طرد - قذف 'URL غير صالح.'؛

}

؟>

انتاج | :

سيظهر الإخراج التالي بعد تشغيل البرنامج النصي من الخادم. عنوان URL المقدم في البرنامج النصي صالح. لذلك ، يُظهر الإخراج قيم المطابقات $ ، واسم مضيف عنوان URL ، واسم المجال لعنوان URL.

مثال 3: نمط البحث بقيم العلم والإزاحة

يوضح المثال التالي استخدامات قيم العلم والإزاحة في وظيفة preg_match (). أنشئ ملف PHP بالنص التالي.

يتم استخدام ثلاثة أنماط في البرنامج النصي لثلاثة أنواع من المطابقة. في أول دالة preg_match () ، يتم استخدام '/ (البنغالية) (desh) /' كنمط وقيمة العلم ، يتم استخدام PREG_OFFSET_CAPTURE. قيم مباريات $ سيتم طباعة المتغير بناءً على إخراج أول دالة preg_match (). في الوظيفة الثانية preg_match () ، يتم استخدام '/ (bangla) (سعيد) * (desh) / i' كنمط وقيمة العلم ، يتم استخدام PREG_UNMATCHED_AS_NULL. إذا لم يتطابق أي جزء من النموذج ، فسيتم تخزين قيمة NULL في الصفيف. قيم مباريات $ سيتم طباعة المتغير بناءً على إخراج دالة preg_match () الثانية. في دالة preg_match () الثالثة ، يتم استخدام '/ glad /' كنمط ، ويتم استخدام قيمة العلم ، ويتم استخدام PREG_OFFSET_CAPTURE ويتم استخدام 3 كقيمة إزاحة. قيم مباريات $ سيتم طباعة المتغير بناءً على إخراج دالة preg_match () الثالثة.



// تحديد قيمة النص

نص $ = 'بنغلاديش'؛

// تحديد ثلاثة أنواع من الأنماط

$ pattern1 = / (البنغالية) (desh) / i '؛

$ pattern2 = / (البنغالية) (مسرور) * (desh) / أنا '؛

$ pattern3 = '/مسرور/'؛


// استخدام علامة PREG_OFFSET_CAPTURE

المطابقة المسبقة ($ pattern1و نص $و مباريات $وPREG_OFFSET_CAPTURE)؛

رما - طرد - قذف '
';  

print_r ($matches);

echo '

'
؛

// استخدام علامة PREG_UNMATCHED_AS_NULL

المطابقة المسبقة ($ pattern2و نص $و مباريات $وPREG_UNMATCHED_AS_NULL)؛

رما - طرد - قذف '
';  

print_r ($matches);

echo '

'
؛

// استخدام علامة PREG_OFFSET_CAPTURE وقيمة الإزاحة

المطابقة المسبقة ($ pattern3و نص $و مباريات $وPREG_OFFSET_CAPTUREو 3)؛

رما - طرد - قذف '
';  

print_r ($matches);

echo '
'
؛

؟>

انتاج | :

سيظهر الإخراج التالي بعد تشغيل البرنامج النصي من الخادم.

استنتاج

تم شرح استخدامات الوظيفة preg_match () في هذا البرنامج التعليمي باستخدام أمثلة متعددة. تم هنا أيضًا عرض استخدامات الحجج المختلفة لهذه الوظيفة. سيتمكن القراء من استخدام هذه الوظيفة بشكل صحيح في النص الخاص بهم بعد قراءة هذا البرنامج التعليمي.