لحد الآن لما نبي نبحث عن شي داخل نص، نستخدم find أو split. بس تخيل بحث يدور على «أي رقم» أو «أي إيميل» أو «أي كلمة تبدأ بحرف معين» — هنا تظهر قوة التعابير النمطية (regex): لغة بحث صغيرة تشتغل داخل بايثون بمكتبة اسمها re.
الفكرة: تكتب نمطاً يصف شكل اللي تدوره، والبايثون يدوره لك داخل النص. أهم حجوزات النمط:
\d أي رقم من 0 إلى 9 \w حرف أو رقم أو شرطة سفلية . أي حرف كان + واحد أو أكثر من اللي قبله * صفر أو أكثر ^ بداية النص $ نهاية النص
الدالة الأساسية re.search(النمط, النص) — ترجع نتيجة لو لقيت، و None لو ما لقيت:
import re
msg = "طلبي رقم 4471 وصل"
if re.search(r"\d+", msg):
print("فيه رقم بالرسالة!")
m = re.search(r"\d+", msg)
print(m.group()) # 4471 — أول تطابقالحرف r قبل النص (r"...") يخبر بايثون: لا تفسر الشرطات المائلة — وهذا يسوي خلاف مع \d.
النمط r"\d+" معناه: رقم واحد أو أكثر متتالية — يعني يمسك 4471 كاملة مو رقم رقم.