محمود موسى2 نشر 20 أبريل 2021 أرسل تقرير نشر 20 أبريل 2021 أريد مساعدتكم في regular expression يطابق درجات طلاب. اريده ان يطابق نص كهذا: 20/100 او 40/100 او 20/30 يعني المبدأ ان يكون هناك اي رقم ثم علامة '/' ثم رقم اخر فهل من مساعدة؟ اقتباس
0 aboelabbas نشر 20 أبريل 2021 أرسل تقرير نشر 20 أبريل 2021 (معدل) وعليكم السلام ورحمة الله يمكنك مطابقة الأعداد في REGEX عن طريق [0-9]+ ومعناه انك تريد مطابقة كل الأرقام من 0 إلى تسعة وعلامة ال + تعني مع إمكانية التكرار أي مطابقة رقم واحد أو اكثر وبالتالي لمطابقة الدرجات بالشكل المطلوب سيكون التعبير كالتالي [0-9]+/[0-9]+ مع ملاحظة أنه عند استخدامك ل "/" ك delimiter فعليك استثناءها فمثلا في لغة ال PHP سيكون الكود شبيها بهذا $string = 'Your First Subject score is 45/50'; $matches = null; preg_match('/[0-9]+\/[0-9]+/', $string, $matches); وستكون قيمة $matches في الكود السابق هي Array ( [0] => 45/50 ) تحديث كما ذكر @Adnane Kadri بخصوص علامات بداية العبارة '^' ونهاية العبارة '$'، يمكنك استخدامهما في حالة أردت مطابقة النص كاملا وليس جزءا من النص. فمثلا إذا أردنا أن نقوم بعمل دالة تتحقق من أن النص هو درجة طالب صحيحة --أي مطابقة للشكل الذي نريده--؛ سيكون الكود في PHP شبيها بهذا: function isValidScore($string) { return (bool) preg_match('/^[0-9]+\/[0-9]+$/', $string); } أمثلة لقيمة ما ترجعه الدالة السابقة عند استخدامها للتحقق من النص isValidScore('45/50'); //-> bool(true) النص المدخل بالكامل من بدايته لنهايته هو درجة طالب كما نريدها isValidScore('Your Score is 45/50'); //-> bool(false) النص ليس درجة طالب تم التعديل في 20 أبريل 2021 بواسطة aboelabbas خطأ مطبعي + تحديث 2 اقتباس
0 Adnane Kadri نشر 20 أبريل 2021 أرسل تقرير نشر 20 أبريل 2021 (معدل) مكونات الـ regular expression التي سيتم استعمالها : ^ : بداية العبارة . 0-9 : رقم بين 0 و 9 . + : محدد التكرار , اي قبول عنصر واحد في التجميعة أو أكثر . / : علامة الـ / الفاصلة بين العددين . [ .. ] : حاضنتين لتشكيل تجميعة . $ : نهاية العبارة . فتكون العبارة كالتالي : ^[0-9]+/[0-9]+$ أي نقبل فقط : الأرقام بين 0 و 9 , قابلة للتكرار / الأرقام بين 0 و 9 قابلة للتكرار . و يكون كل ما هو ليس pos_num/pos_num غير مقبول . أمثلة : 12/100 مقبول في حين أن e0/100 غير مقبول . تم التعديل في 20 أبريل 2021 بواسطة Adnane Kadri 1 اقتباس
السؤال
محمود موسى2
أريد مساعدتكم في regular expression يطابق درجات طلاب.
اريده ان يطابق نص كهذا:
20/100 او 40/100 او 20/30
يعني المبدأ ان يكون هناك اي رقم ثم علامة '/' ثم رقم اخر فهل من مساعدة؟
2 أجوبة على هذا السؤال
Recommended Posts
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.