الكائن regex في بايثون

من موسوعة حسوب

ينشأ كائن التعبير النمطي regex من تصريف التعبير النمطي بواسطة الدالة re.compile()‎، ويقدّم هذا الكائن مجموعة من الخصائص والتوابع التي يمكن من خلالها إجراء العديد من العمليات على التعابير النمطية المصرّفة.

خصائص الكائن regex

يقدّم الكائن regex الخصائص التالية:

regex.flags

رايات التطابق الخاص بالكائن regex، وتمثّل مجموعة الرايات التي تمرّر إلى الدالة re.compile()‎، إضافة إلى الرايات السطرية (‎?...‎) في التعابير النمطية، والرايات الضمنية مثل UNICODE إن كان التعبير النمطي سلسلة نصية بترميز Unicode.

regex.groups

عدد مجموعات الالتقاط في التعبير النمطي.

regex.groupindex

قاموس يربط أسماء المجموعات الرمزية والمعرّفة بواسطة التعبير ‎(?P<id>)‎ بأعداد المجموعات. يكون القاموس خاليًا إن لم تستخدم أي مجموعة رمزية في التعبير النمطي.

regex.pattern

سلسلة التعبير النمطي التي استُخدمت لتصريف كائن التعبير النمطي.

تقدّم الشيفرة التالية مثالًا عن القيم التي يمكن أن تحملها هذه الخصائص:

>>> import re
>>> p = re.compile(r'(?P<word>\b\w+\b)', re.IGNORECASE)
>>> p.flags
34
>>> p.groups
1
>>> p.groupindex
mappingproxy({'word': 1})
>>> p.pattern
'(?P<word>\\b\\w+\\b)'

توابع الكائن regex

يقدّم الكائن regex التوابع التالية:

regex.search()‎

يفحص هذا التابع السلسلة النصية المعطاة بحثًا عن أول موقع يحصل فيه تطابق مع التعبير النمطي المصرّف، ويعيد كائن التطابق المقابل.

regex.match()

يفحص هذا التابع بداية السلسلة النصية المعطاة بحثًا عن حالة تطابق مع التعبير النمطي المصرّف، ويعيد كائن التطابق المقابل.

regex.fullmatch()

يتحقّق هذا التابع من تطابق التعبير النمطي المصرّف مع السلسلة النصية المعطاة كاملة، ويعيد كائن التطابق المقابل.

regex.split()

يقسم التابع السلسلة النصية عند كل مكان تحدث فيه عملية مطابقة للنمط المصرّف. هذا التابع مطابق تمامًا للدالة re.split()‎.

regex.findall()

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

regex.finditer()

يعيد التابع كائنًا قابلًا للتكرار iterator ينتج عنه كائنات match لجميع حالات التطابق غير المتداخلة والناتجة من تطبيق التعبير النمطي المصرّف على السلسلة النصية المعطاة.

regex.sub()

يبدل التابع حالات التطابق غير المتداخلة في أقصى اليسار -والناتجة عن تطبيق التعبير النمطي المصرّف على السلسلة النصية المعطاة- بسلسلة نصية أو بالقيمة المعادة من دالة.

regex.subn()

يؤدي هذا التابع نفس عمل التابع regex.sub()‎ ولكنّه يعيد الناتج على هيئة صفّ (السلسلة الجديدة، عدد الاستبدالات المجراة).

انظر أيضًا

  • الكائن match : ينشأ هذا الكائن كنتيجة لتطبيق التابعين regex.match()‎ و regex.search() على التعبير النمطي المصرّف.
  • الوحدة re: تقّدم الوحدة re مجموعة من العمليات الخاصة بمطابقة التعابير النمطية (Regular Expressions) وهي مشابهة إلى حدّ كبير للعمليات الموجودة في لغة Perl.

مصادر