مقال : التعابير النمطية Regular Expressions الجزء الثاني
السلام عليكم ورحمة الله وبركاته
سنكمل اليوم الجزء الثاني من تعلم التعابيرالمنتظمة,في هذا الجزء سندرس أهم 3 أمور في التعابير المنتظمة وهي الوضائف match,search,group,وهي عبارة عن دوال تأتي مع مكتبة او Module التعابير المنتظمة re وهذه الوضائف ستستعملها كثيرا في تعاملاتك مع التعابير المنتظمة ويجب أن تفهمها جيدا لأنه لو تعقدت فيها سوف تكره التعابير المنتظمة لذالك تابع معي جيدا عزيزي القارئ.
الوظيفة match:
هي وظيفة تعبر ما تطابق من النص مع التعبير النمطي,فالنأخذ مثال على ذلك
في السطر الثاني قلنا للبايثون هل الحرف a يتطابق مع قيم المتغير a,فكانت إجابة البايثون بنعم!
<_sre.SRE_Match object at 0xb7349db0>
حاول أن تغير قيم المتغير a لترى الناتج ماذا سيكون!
حسنا سأضع لكم هذا جدول الذي يحتوي على اهم رموز تخص تعابير المنتظمة ستعمل بها في كل برمجياتك
عليك دراسة هذا الجدول جيدا وتعيد صياغة الامثلة بالخطأ لكي تفهمها جيدا وتفكر مثلما تفكر البايثون
! إن هذا الجدول بسيط يشمل أهم الرموز لي ذلك عليك إكتشاف الباقي وتجربته.
الرمز |
فائدته |
مثال على ذلك |
^ |
أي شيء ماعدا مانسب إليها اي سيتوقف عليه |
import re a = “b” s = re.match( r'[^a]’, a) print s |
.النقطة . |
تعبر عن أي شيء ما عدا اﻷاسطر الجديدة n/ |
import re a = “b” s = re.match( r’.’, a) print s |
{ 1,2} |
تعبر عن عدد ما مثلا من 1 إلى 2 |
import re a = “a” s = re.match( r’a{1,2}’, a) print s |
{,2} |
تعبر عن عدد ما من صفر إلى 2 |
import re a = “a” s = re.match( r’a{,2}’, a) print s |
{,1} |
تعبر عن عدد من واحد إلى ما ﻻنهاية |
import re a = “a” s = re.match( r’a{1,}’, a) print s |
+ |
تعبر عن اي عدد او حرف على اقل واحد |
import re a = “a” s = re.match( r’a+’, a) print s |
*
|
تعبر عن أي عدد او حرف على اقل 0 |
import re a = “a” s = re.match( r’a*’, a) print s |
? |
تعبر على اقل |
import re a = “aaaa” s = re.match( r’a?’, a) print s |
$ |
تعبر عن نهاية النص |
import re a = “a” s = re.match( r’a$’, a) print s |
قلنا للبايثون هل كلمة Amer موجودة في المتغير a؟فأجابت البايثون بنعم! لماذا عزيزي القارئ ﻻ ترغم البايثون على ان تقول لك ﻻ غير في الكود وأكتبه على أشكاله العدة !
الدالة Groupe:
بالنسبة لي هذه الدالة أعتبرها دالة تنظيمية فهي إن كان النمط مطابق على النص فبهذه الدالة يمكننا أن نطبع إسم نمط ﻻحظ مثال التالي:
هنا إن الإسم موجود,بإستخدام الدالة group اصبحت البايثون تعطينا إسم الكلمة او جملة ﻻ أن تقول لنا نعم او ﻻ !
ﻻحظ المثال التالي وحاول أن تفهمه بإستخدام الجدول السابق
هذا كل ما لدينا في هذا الجزء,لم أتعمد اللخبطة في أمور أخرى أو تكبير الموضوع لأنه التعابير المنتظمة لأهميتها وصعوبة فهمها علينا النمشي [درجة درجة] ندرس الأمور بصورة بسيطة وسهلة وغير مملة,نلتقي إن شاء الله في الجزء الثالث لنتعرف على وظائف أخرى وامثلة متطورة,حاول أن تعيد كتابة الأمثلة السابق بالشكل الخاطئ لتردس الأخطاء وكيف تتعامل مع الأمر بشكل أحسن.
كفاية مشكلة واحدة لاتخليها ثنتين هههههه
شكرًا جزيلًا، موضوع مفيد حقًا.