اذهب إلى المحتوى
  • 0

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

المبرمج العربي

السؤال

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

"hello hello".match /(hello)/

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

رابط هذا التعليق
شارك على الشبكات الإجتماعية

Recommended Posts

  • 0

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

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

"hello1 hello2".scan(/(hello\d+)/).each do|m|
  puts m
end
رابط هذا التعليق
شارك على الشبكات الإجتماعية

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...