دوال الموديول re في بايثون

دوال الموديول re

بعد تضمين الموديول re نصبح قادرين على إستخدام الدوال الموجودة فيه و التي ذكرنا أهمها في الجدول التالي.

إسم الدالة مع تعريفها
search(pattern, string, flags=0) تبحث في النص الذي نمرره له مكان الباراميتر string لترى ما إذا كان يتطابق أو فيه جزء يتطابق مع التعبير النمطي الذي نمرره لها مكان الباراميتر pattern.
في حال تم إيجاد جزء أو أكثر في النص يتطابق مع التعبير النمطي, تقوم بإرجاع كائن من الكلاس Match يحتوي على معلومات أول مكان في هذا النص تطابق مع التعبير النمطي.
في حال لم يتم العثور على النص المراد البحث عنه ترجع None.
الدالة search »
findall(pattern, string, flags=0) تبحث في النص الذي نمرره له مكان الباراميتر string لترى ما إذا كان يتطابق أو فيه جزء يتطابق مع التعبير النمطي الذي نمرره لها مكان الباراميتر pattern.
في حال تم إيجاد جزء أو أكثر في النص يتطابق مع التعبير النمطي, ترجع list كل عنصر فيه يمثل الجزء الذي يتطابق مع التعبير النمطي.
في حال لم يتم إيجاد أي تطابق, ترجع list فارغ.
الدالة findall »
finditer(pattern, string, flags=0) تبحث في النص الذي نمرره له مكان الباراميتر string لترى ما إذا كان يتطابق أو فيه جزء يتطابق مع التعبير النمطي الذي نمرره لها مكان الباراميتر pattern.
في حال تم إيجاد جزء أو أكثر في النص يتطابق مع التعبير النمطي, ترجع iterator كل عنصر فيه عبارة عن كائن Match يمثل الجزء الذي يتطابق مع التعبير النمطي.
في حال لم يتم إيجاد أي تطابق, ترجع list فارغ.
الدالة finditer »
split(pattern, string, maxsplit=0, flags=0) ترجع نسخة من النص الذي نمرره لها مكان الباراميتر string مقسمة على شكل مصفوفة ( list ) من النصوص.
مكان الباراميتر pattern نمرر تعبير نمطي يحدد الطريقة التي سيتم على أساسها تقسيم النص و وضع كل قسم فيه في عنصر واحد بداخل المصفوفة.
في حال لم يتم العثور على النص المراد البحث عنه ترجع list فيه عنصر واحد يحتوي على كل النص الذي تم البحث فيه.
مكان الباراميتر maxsplit يمكنك تمرير رقم يحدد إلى كم قسم تريد أن يتم تقسيم النص.
الدالة split »
sub(pattern, repl, string, count=0, flags=0) ترجع نسخة من النص الذي نمرره لها مكان الباراميتر string مع تبديل كل جزئية فيها تتطابق مع التعبير النمطي الذي نمرره لها مكان الباراميتر pattern بالنص الذي نمرره لها مكان الباراميتر repl.
مكان الباراميتر count يمكنك تمرير رقم أكبر من صفر يمثل أول كم جزئية يتم العثور عليها تريدها أن تتبدل.
الدالة sub »

 الدالة search() في بايثون

تعريفها

تبحث في النص الذي نمرره له مكان الباراميتر string لترى ما إذا كان يتطابق أو فيه جزء يتطابق مع التعبير النمطي الذي نمرره لها مكان الباراميتر pattern.
في حال تم إيجاد جزء أو أكثر في النص يتطابق مع التعبير النمطي, تقوم بإرجاع كائن من الكلاس Match يحتوي على معلومات أول مكان في هذا النص تطابق مع التعبير النمطي.
في حال لم يتم العثور على النص المراد البحث عنه ترجع None.



بناؤها

                  search(pattern, string, flags=0)
  


باراميترات

  • مكان الباراميتر string نمرر الذي نريد البحث فيه.

  • مكان الباراميتر pattern نمرر تعبير نمطي يمثل النص المراد البحث عنه.



قيمة الإرجاع

في حال تم إيجاد جزء أو أكثر في النص يتطابق مع التعبير النمطي, تقوم بإرجاع كائن من الكلاس Match يحتوي على معلومات أول مكان في هذا النص تطابق مع التعبير النمطي.
في حال لم يتم العثور على النص المراد البحث عنه ترجع None.


في المثال التالي التعبير النمطي ^Python.*learn* معناه: هل النص يبدأ بكلمة Python و ينتهي بكلمة learn.

مثال

Test.py
                    # حتى نستطيع إستخدام الدوال الموجودة فيه re هنا قمنا بتضمين الموديول
      import re

      # هنا قمنا بتعريف النص الذي سنبحث فيه بعد قليل
      txt = "Python is an easy language to learn"

      # Match أصبح يمثل كائن من الكلاس result فهذا يعني أن learn و ينتهي بكلمة Python بما أن النص يبدأ بكلمة
      result = re.search("^Python.*learn?", txt)

      # if سيتم تنفيذ دالة الطباعة الموضوع في الجملة - Match لأنه يحتوي كائن - None لا يحتوي على القيمة result بما أن الكائن
      if result:
      print("Yes, We found Match!")
      else:
      print("No match found!")
    

سنحصل على النتيجة التالية عند تشغيل الملف Test.

Yes, We found Match!

 الدالة findall () في بايثون

تعريفها

تبحث في النص الذي نمرره له مكان الباراميتر string لترى ما إذا كان يتطابق أو فيه جزء يتطابق مع التعبير النمطي الذي نمرره لها مكان الباراميتر pattern.
في حال تم إيجاد جزء أو أكثر في النص يتطابق مع التعبير النمطي, ترجع list كل عنصر فيه يمثل الجزء الذي يتطابق مع التعبير النمطي.
في حال لم يتم إيجاد أي تطابق, ترجع list فارغ.



بناؤها

                  findall(pattern, string, flags=0)
  


باراميترات

  • مكان الباراميتر string نمرر الذي نريد البحث فيه.

  • مكان الباراميتر pattern نمرر تعبير نمطي يمثل النص المراد البحث عنه.



قيمة الإرجاع

في حال تم إيجاد جزء أو أكثر في النص يتطابق مع التعبير النمطي, ترجع list كل عنصر فيه يمثل الجزء الذي يتطابق مع التعبير النمطي.
في حال لم يتم إيجاد أي تطابق, ترجع list فارغ.


في المثال التالي التعبير النمطي \w*ea\w* معناه: هل يوجد كلمة إنجليزية تحتوي على الحرفين ea.

مثال

Test.py
                    # حتى نستطيع إستخدام الدوال الموجودة فيه re هنا قمنا بتضمين الموديول
      import re

      # هنا قمنا بتعريف النص الذي سنبحث فيه بعد قليل
      txt = "Python is an easy language to learn"

      # يحتوي على الكلمات التي تم إيجادها list أصبح يمثل result فهذا يعني أن ea بما أن النص يوجد فيه أكثر من كلمة إنجليزية فيها الحرفين
      result = re.findall("\w*ea\w*", txt)

      # و من ثم طباعتها result الذي يقضي بالمرور على كل قيمة في الكائن if غير فارغ, سيتم تنفيذ محتوى الجملة list يمثل كائن result بما أن
      if result:
      for word in result:
      print(word)
      else:
      print("No match found!")
    

سنحصل على النتيجة التالية عند تشغيل الملف Test.

easy
learn

 الدالة finditer() في بايثون

تعريفها

تبحث في النص الذي نمرره له مكان الباراميتر string لترى ما إذا كان يتطابق أو فيه جزء يتطابق مع التعبير النمطي الذي نمرره لها مكان الباراميتر pattern.
في حال تم إيجاد جزء أو أكثر في النص يتطابق مع التعبير النمطي, ترجع iterator كل عنصر فيه عبارة عن كائن Match يمثل الجزء الذي يتطابق مع التعبير النمطي.
في حال لم يتم إيجاد أي تطابق, ترجع list فارغ.



بناؤها

                  finditer(pattern, string, flags=0)
  


باراميترات

  • مكان الباراميتر string نمرر الذي نريد البحث فيه.

  • مكان الباراميتر pattern نمرر تعبير نمطي يمثل النص المراد البحث عنه.



قيمة الإرجاع

في حال تم إيجاد جزء أو أكثر في النص يتطابق مع التعبير النمطي, ترجع iterator كل عنصر فيه عبارة عن كائن Match يمثل الجزء الذي يتطابق مع التعبير النمطي.
في حال لم يتم إيجاد أي تطابق, ترجع list فارغ.


في المثال التالي التعبير النمطي \w*ea\w* معناه: هل يوجد كلمة إنجليزية تحتوي على الحرفين ea.

مثال

Test.py
                    # حتى نستطيع إستخدام الدوال الموجودة فيه re هنا قمنا بتضمين الموديول
      import re

      # هنا قمنا بتعريف النص الذي سنبحث فيه بعد قليل
      txt = "Python is an easy language to learn"

      # result فهذا يعني أن ea بما أن النص يوجد فيه أكثر من كلمة إنجليزية فيها الحرفين
      # فيه كل تفاصيل الكلمة التي تم إيجادها Match كل عنصر فيه يمثل كائن iterator أصبح يمثل 
      result = re.finditer("\w*ea\w*", txt)

      # و من ثم طباعتها result الذي يقضي بالمرور على كل قيمة في الكائن if غير فارغ, سيتم تنفيذ محتوى الجملة iterator يمثل كائن result بما أن
      if result:
      for word in result:
      print(word)
      else:
      print("No match found!")
    

سنحصل على النتيجة التالية عند تشغيل الملف Test.

<_sre.SRE_Match object; span=(13, 17), Match='easy'>
<_sre.SRE_Match object; span=(30, 35), Match='learn'>

 الدالة split () في بايثون

تعريفها

ترجع نسخة من النص الذي نمرره لها مكان الباراميتر string مقسمة على شكل مصفوفة ( list ) من النصوص.



بناؤها

                  split(pattern, string, maxsplit=0, flags=0)
  


باراميترات

  • مكان الباراميتر string نمرر الذي نريد البحث فيه.

  • مكان الباراميتر pattern نمرر تعبير نمطي يحدد الطريقة التي سيتم على أساسها تقسيم النص و وضع كل قسم فيه في عنصر واحد بداخل المصفوفة..

  • مكان الباراميتر maxsplit يمكنك تمرير رقم يحدد إلى كم قسم تريد أن يتم تقسيم النص.



قيمة الإرجاع

ترجع نسخة من النص الذي نمرره لها مكان الباراميتر string مقسمة على شكل مصفوفة ( list ) من النصوص.
في حال لم يتم العثور على النص المراد البحث عنه ترجع list فيه عنصر واحد يحتوي على كل النص الذي تم البحث فيه.


في المثال التالي التعبير النمطي \s معناه مسافة فارغة.

مثال

Test.py
                    # حتى نستطيع إستخدام الدوال الموجودة فيه re هنا قمنا بتضمين الموديول
      import re

      # هنا قمنا بتعريف النص الذي سنبحث فيه بعد قليل
      txt = "Python is an easy language to learn"

      # result من الكلمات و من ثم تخزينها في الكائن list على أساس المسافات الفارغة. و هذا يعني أنه سيتم إنشاء txt هنا قمنا بتقسيم نص المتغير
      result = re.split("\s", txt)

      # و من ثم طباعتها result هنا قمنا بالمرور على كل قيمة في الكائن
      for word in result:
      print(word)
    

سنحصل على النتيجة التالية عند تشغيل الملف Test.

Python
is
an
easy
language
to
learn

 الدالة sub()

تعريفها

ترجع نسخة من النص الذي نمرره لها مكان الباراميتر string مع تبديل كل جزئية فيها تتطابق مع التعبير النمطي الذي نمرره لها مكان الباراميتر pattern بالنص الذي نمرره لها مكان الباراميتر repl.



بناؤها

                  sub(pattern, repl, string, count=0, flags=0)
  


باراميترات

  • مكان الباراميتر string نمرر الذي نريد البحث فيه.

  • مكان الباراميتر pattern نمرر تعبير نمطي يمثل النص المراد البحث عنه.

  • مكان الباراميتر repl نمرر النص الذي نريد وضعه بدلاً من النص الذي تم البحث عنه في حال إيجاده.

  • مكان الباراميتر count يمكنك تمرير رقم أكبر من صفر يمثل أول كم جزئية يتم العثور عليها تريدها أن تتبدل.



قيمة الإرجاع

ترجع نسخة من النص الذي نمرره لها مكان الباراميتر string مع تبديل كل جزئية فيها تتطابق مع التعبير النمطي الذي نمرره لها مكان الباراميتر pattern بالنص الذي نمرره لها مكان الباراميتر repl.


في المثال التالي التعبير النمطي \s معناه مسافة فارغة.

مثال

Test.py
                    # حتى نستطيع إستخدام الدوال الموجودة فيه re هنا قمنا بتضمين الموديول
      import re

      # هنا قمنا بتعريف النص الذي سنبحث فيه بعد قليل
      txt = "Python is an easy language to learn"

      # result مع تبديل أول ثلاث مسافات فارغة فيها بالرمز '-' و من ثم تخزين هذا النص في المتغير txt نسخة من النص الموجود في المتغير sub() هنا سترجع الدالة
      result = re.sub("\s", '-', txt, 3)

      # result هنا قمنا بطباعة النص الذي تم تخزينه في المتغير
      print(result)
    

سنحصل على النتيجة التالية عند تشغيل الملف Test.

Python-is-an-easy language to learn
تعليقات