• 0

كيف أطابق بشكل شامل في التعابير النمطية في روبي؟

في اللغات الأخرى يمكنني استخدام //g في التعابير النمطية للمطابقة بشكل شامل، في حين أنه في روبي هذا السطر:

"hello hello".match /(hello)/

لن يلتقط سوى hello الأول، فكيف أستطيع التقاط جميع كلمات hello الموجودة في سلسلة نصية معينة؟

انشر على الشّبكات الاجتماعية


رابط هذه المساهمة
  • 0

من أسهل الطرق في لغة روبي لحل هذه المشكلة هي استخدام تابع scan، فهذا التابع سيعطيك مصفوفة تحتوي على جميع المتطابقات أو في حالة ما مررته إلى كتلة معينة (block) فإنه سيمرر كل مطابق إلى تلك الكتلة لتنفيذ الأوامر التي تريدها.
في المثال الأول سيرجع روبي مصفوفة بالمطابقات أما في المثال الثاني فسيطبع كل عنصر على حدة:

"hello1 hello2".scan(/(hello\d+)/)   # => [["hello1"], ["hello2"]]

"hello1 hello2".scan(/(hello\d+)/).each do|m|
  puts m
end

انشر على الشّبكات الاجتماعية


رابط هذه المساهمة

يجب أن تكون عضوًا لدينا لتتمكّن من التعليق

انشاء حساب جديد

يستغرق التسجيل بضع ثوان فقط


سجّل حسابًا جديدًا

تسجيل الدخول

تملك حسابا مسجّلا بالفعل؟


سجّل دخولك الآن