Python/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()
ولكنّه يعيد الناتج على هيئة صفّ (السلسلة الجديدة، عدد الاستبدالات المجراة).