القوة الحقيقية تجي لما نستخرج كل المطابقات مو أولها. الدالة re.findall(النمط, النص) ترجع قائمة بكل اللي لقيته:
import re text = "راسلنا: felix@zoxa.dev أو support@vlxai.app" emails = re.findall(r"\S+@\S+", text) print(emails) # ['felix@zoxa.dev', 'support@vlxai.app']
النمط r"\S+@\S+" يقرأ: مجموعة حروف بدون مسافة (\S) وبعدها @ وبعدها حروف بدون مسافة — شكل إيميل مبسط.
مثال عملي: عد كم مرة انذكر رقم بالسجل:
log = "زيارة 12 نقطة 7 نقطة 99 نقطة 12" nums = re.findall(r"\d+", log) print(nums) # ['12', '7', '99', '12'] print(len(nums)) # 4 أرقام
وتقدر تتحقق من صحة مدخلات المستخدم — هل عبي رقم سليم؟:
phone = "0512345678"
if re.fullmatch(r"\d{10}", phone):
print("رقم سليم")
# \d{10} = عشر أرقام بالضبطالأقواس المعقوفة {10} تعني: كرر اللي قبلك 10 مرات بالضبط. و fullmatch تشترط النص كله يطابق النمط من أوله لآخره.