التعابير القياسية في بايثون الجزء 2

في الجزء الأول من هذه السلسلة توقفنا عند هذا الكود

import re

if re.search('a*', 'cucumber'):
    print "found it!"
else:
    print "didn't find it :("

ونتيجة هذا الكود ستكون found it وهذا بسبب أن العلامة * في عالم التعابير القياسية تعني تطابق منعدم لأخر حرف في السلسلة اي إذا كان النمط *a كاننا نقول اذا لم تجد اي تطابق للحرف a في أخر حرف من السلسلة فقم بكذا وهذا ماحدث في مثالنا حيث لم يجد أي تطابق للحرف a في الحرف الأخير من  السلسلة cucumber كما أن جميع السلاسل الفارغة تتطابق مع العلامة *.

العلامة +

تقوم هذه العلامة بتطابق نمط واحد أو أكثر حيث ان +a تتطابق مع batman ;ولا تتطابق مع cucumber .

العلامة ^

تعني هذه العلامة بداية السلسلة حيث أن النمط ^j تتطابق مع السلسلة joker ولكنها لا تتطابق مع السلسلة banjo.

العلامة $

هذه العلامة عكس سابقتها  ^ أي تعني نهاية السلسلة  حيث أن $g تتطابق مع السلسلة bag ولا تتطابق مع game.

حان الوقت لجدول أخر :

مجموعة من الأمثلة المختلفة عن التعابير القياسية

دعونا نأخد مثال رائع بحيث يكون لدينا برنامج يتحقق من السلسلة ما إذا كانت تتطابق مع شكل رقم الهاتف مثل 0123456789

import re

number = raw_input("enter phone number: ")

if re.search('^\d\d\d\d\d\d\d\d\d\d$', number):
print "it's valid!"
else:
print "nope!"

الأقواس في التعابير القياسية عبارة عن حالات خاصة ساقوم بشرحها في الجزء الثالث بحول الله ولهذا لم أستعملها حتى نتكلم عنهم ، على كل حال بدأنا بالنمط^ والتي تمثل بداية السلسلة واما العلامة$ فإنها تمثل نهاية السلسلة وهكذا لا يمكننا أن نقول على رقم ما أنه رقم صحيح إذا قام المستخدم بإدخال سلسلة مثل “blahblahblah3333333333something else ” بعد ذلك وضعنا عشرة أرقام وهذا هو كل شيء .

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

أرجوا أن تقوم بدعمنا عبر نشرك والاعجاب بالموقع

اترك تعليقاً

لن يتم نشر عنوان بريدك الإلكتروني. الحقول الإلزامية مشار إليها بـ *

Post Navigation