الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

التعابير النمطية Regular Expressions الجزء الثالث‎

بدأه عامر الشابي في 15 يونيو 2013 · 2 رد · 652 مشاهدة · في لغة Python
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم ورحمة الله وبركاته


سنكمل في هذا المقال الجزء الثالث من سلسلة تعلم التعابير النمطية حيث تكلمنا عنها في دروس سابق,ربما كانت المقالات قصيرة نوعا ما ولكن تأكدوا أنه ما تحتويه يفوق ما تتخيله لو طبقت بأمثلة اخرى,تعمدت تقصيرها لتصل فكرة التعابير النمطية بشكل جيد ومفهومة,سأبدأ بأول مثال :


MmcxM.png


هنا في السكربت 1.py قلنا للبايثون ان كان كل من [Nn] متطابق مع النص “python” فكانت إجابة البايثون بنعم وفي السكربت 2.py نفس الشيء غيرنا في string فأصبح“pythoN” فكانت إجابة البايثون بأنه يوجد تطابق,الآن في السكربت 3.py غيرنا في string فاصبح “pythos” أها هنا البايثون لم يجد أي تطابق فكانت الحالة None.حاول تجريب بأمثلة أخرى لتصل الفكرة.


أنظر إلى الجدول التالي وطبق كل مافيه:


mQqDB.png


قم بتجريب كل هذه الأمثلة وغير مافيها من تغيير


لآن سنتكلم على وظيفة اخرى تعتبر وظيفة مستعملة بكثرة ايضا وهي Sub:تستخدم هذه الوظيفة في بحث عن مقطع معين من نص وتعويضه بنص أوكلمة أو جملة أخرى فالنأخذ مثال على ذلك:


VbSMh.png


قلنا للبايثون إستبدل الجملة “Amer Chaabi number 789-8745-9998″ بفراغ و ,اطبع لنا ما يوجد في متغير الجديد s,هنا هدفنا أن نترك فقط رقم الهاتف ما رئيك أن نجعل ارقام الهاتف بدون رموز؟


G0yrk.png


جميل الآن لقد شملت كل أمور الاساسية في التعابير النمطية يمكنك البدأ في برمجة سكربتات بسيطة عليها وقرائة مقالات أخرى كبيرة لتستوعب أكثر واكثر.


 

 

2

Untitled-18.jpg

#2

أشكرك أخي العزيز

عامر الشابي

 

أستفدت كثير من هذه السلسله

 

أنظر هنا


import res = re.sub( r'[hiHI]','hello','HI name')print s

الناتج

hellohello name

لماذا لم يفرق بين الكبتل والأسمول

 

وهل يوجد مكتبه عريبه لها؟

 

وشكرا جزيلا

تم تعديل هذه المشاركة بواسطة sada_rohak في 20 يونيو 2013 في 13:41

#3
sada_rohak كتب:

أشكرك أخي العزيز

عامر الشابي

 

أستفدت كثير من هذه السلسله

 

أنظر هنا

import res = re.sub( r'[hiHI]','hello','HI name')print s

الناتج

hellohello name

لماذا لم يفرق بين الكبتل والأسمول

 

وهل يوجد مكتبه عريبه لها؟

 

وشكرا جزيلا

 

لأن شفيرتك خاطئ,أنظر إلى تركيب النمطي الصحيح

import res = re.sub( r"HI","hello","HI name")print s

الجملة التي تريد إستبدالها دائما تكون بين " " وليس [ ] فهذا الأخير كما قلت تكون للتفريق ويستخدم في الوظيفة match

حاول إعادة صيغ جميع الأمثلة وأي غموض ضعه هنا

بالتوفيق لك

Untitled-18.jpg

مواضيع مشابهة