• 0

ما الفرق بين دالة search() وmatch() في بايثون؟

أريد معرفة الفرق بين دالة search() وmatch() الموجودتان ضمن مكتبة re، فحسب ما أعرفه عن هاتين الدالتين أنهما تُستخدمان للبحث داخل السلسلة النصية.

انشر على الشّبكات الاجتماعية


رابط هذه المساهمة
  • 0

على الرغم من أن كلا الدالتين تُستخدمان للبحث داخل السلسلة النصية إلا أنه هنالك فرق بسيط بينهما، فدالة re.match تستخدم للبحث في بداية السلسلة النصية، وهذه الدالة لا تفعل أي شيئ للأسطر الجديدة ولذلك فهي ليست مشابهة لـ ^ عند استخدام التعابير النمطية.
أما بالنسبة لـ re.search فهي تُستخدم للبحث في كامل السلسلة النصيّة وإرجاع موقع الكلمة/ الكلمات التي تبحث عنها.
لتوضيح الفرق بشكلٍ أفضل، أنصحك بإلقاء نظرة على هذه الأسطر:

a = "123abc"
t = re.match("[a-z]+",a)
t = re.search("[a-z]+",a)

بالنسبة إلى re.match فإنها ستقوم بإرجاع سلسلة فارغة وأما re.search فإنها ستقوم بإرجاع abc.
المصدر

انشر على الشّبكات الاجتماعية


رابط هذه المساهمة

يجب أن تكون عضوًا لدينا لتتمكّن من التعليق

انشاء حساب جديد

يستغرق التسجيل بضع ثوان فقط


سجّل حسابًا جديدًا

تسجيل الدخول

تملك حسابا مسجّلا بالفعل؟


سجّل دخولك الآن