الدالة re.findall()‎ في بايثون‎

من موسوعة حسوب
< Python‏ | re
مراجعة 13:24، 18 يونيو 2018 بواسطة عبد اللطيف ايمش (نقاش | مساهمات)
(فرق) → مراجعة أقدم | المراجعة الحالية (فرق) | مراجعة أحدث ← (فرق)

تعيد الدالة جميع حالات التطابق غير المتداخلة للنمط المطبق على السلسلة النصية المعطاة على هيئة قائمة من السلاسل النصية.

البنية العامة

re.findall(pattern, string, flags=0)

المعاملات

pattern

التعبير النمطي المستخدم لإجراء عملية المطابقة.

string

السلسلة النصية التي ستبحث فيها الدالة عن حالات التطابق.

flags

الرايات المستخدمة لضبط عملية البحث. يأخذ هذا المعامل القيمة 0 كقيمة افتراضية. راجع قسم المعاملات في توثيق الدالة ()re.compile للمزيد من المعلومات.

القيمة المعادة

تعيد الدالة جميع حالات التطابق غير المتداخلة للنمط المطبق على السلسلة النصية المعطاة على هيئة قائمة من السلاسل النصية. يجري فحص السلسلة النصية من اليسار إلى اليمين، وتعاد حالات التطابق بحسب ترتيب وقوعها. إن كانت هناك مجموعة واحدة أو أكثر ضمن النمط المعطى، فستعيد الدالة قائمة من المجموعات، وتعيد قائمة من الصفوف إن تضمّن النمط أكثر من مجموعة واحدة، وتضاف التطابقات الفارغة إلى النتيجة النهائية.

ملاحظة

نظرًا لوجود بعض المحدّدات فإنّ المحرف الذي يأتي بعد حالة تطابق فارغة لن يكون مضمّنًا في حالة التطابق اللاحقة، لذا فإنّ الدالة findall(r'^|\w+', 'two words')‎ تعيد القائمة ‎['', 'wo', 'words']‎ (لاحظ عدم وجود الحرف 't'). سيتغير هذا السلوك في الإصدار 3.7 من بايثون.

انظر أيضًا

  • الدالة re.finditer(): تعيد الدالة كائنًا قابلًا للتكرار iterator ينتج عنه كائنات match لجميع حالات التطابق غير المتداخلة والناتجة من تطبيق التعبير النمطي المعطى على السلسلة النصية المعطاة.
  • التابع regex.findall()‎: يعيد التابع جميع حالات التطابق غير المتداخلة للنمط المصرّف والمطبّق على السلسلة النصية المعطاة على هيئة قائمة من السلاسل النصية.
  • التابع regex.finditer()‎: يعيد التابع كائنًا قابلًا للتكرار iterator ينتج عنه كائنات match لجميع حالات التطابق غير المتداخلة والناتجة من تطبيق التعبير النمطي المصرّف على السلسلة النصية المعطاة.

مصادر