أمثلة بيثون ريجكس

Amthlt Bythwn Ryjks



الشكل الكامل للتعبير العادي هو التعبير العادي. وهي ميزة مهمة لأي لغة برمجة. إنه نمط سلسلة يُستخدم لمطابقة السلاسل في قيمة سلسلة أو البحث عنها أو استبدالها. يمكن استخدام نمط regex في برنامج Python النصي باستخدام وحدة 're' في Python. تحتوي هذه الوحدة على العديد من أنواع الوظائف للقيام بعمليات سلسلة مختلفة. يتم استخدام أحرف أولية مختلفة وتسلسلات خاصة لتحديد أنماط التعبير العادي للبحث عن المهام أو استبدالها. يتم عرض أغراض استخدام بعض الأحرف الأولية شائعة الاستخدام والتسلسلات الخاصة وطرق regex في برنامج Python النصي في هذا البرنامج التعليمي.

بعض الأحرف الأولية شائعة الاستخدام في regex:









الشخصيات غاية
'+' يتم استخدامه لمطابقة واحد أو أكثر من تكرارات حرف معين في سلسلة.
'*' يتم استخدامه لمطابقة صفر أو أكثر من تكرارات حرف معين في سلسلة.
'؟' يتم استخدامه لمطابقة صفر أو تكرار واحد لحرف معين في سلسلة.
'^' يتم استخدامه لمطابقة الحرف أو السلسلة المعينة في بداية السلسلة.
'$' يتم استخدامه لمطابقة الحرف أو السلسلة المعينة في نهاية السلسلة.
'|' يتم استخدامه لمطابقة أي من السلاسل المتعددة في السلسلة. إنه يعمل مثل منطق OR.
'[]' يتم استخدامه لمطابقة مجموعة من الشخصيات.
'{}' يتم استخدامه لمطابقة عدد محدد من الأحرف.



بعض التسلسلات الخاصة شائعة الاستخدام في regex:





تسلسلات غاية
'\أ' يتم استخدامه لمطابقة الحرف المعين في بداية السلسلة. إنه يعمل مثل الحرف '^'.
'\ب'، '\ب' يتم استخدام '\b' لمطابقة السلسلة التي تحتوي على الحرف أو الكلمة المحددة في بداية السلسلة أو نهايتها. يعمل '\B' عكس '\b'.
'\د'، '\د' يتم استخدام '\d' لمطابقة الرقم العشري في السلسلة المشابهة لـ '[0-9]'. يعمل '\D' عكس '\d'.
'\s'، '\S' يتم استخدام '\s' لمطابقة المسافة البيضاء في السلسلة المشابهة لـ '[\n\t\r\v]'. يعمل '\S' عكس '\s'.
'\ث'، '\W' يتم استخدام '\w' لمطابقة الأحرف الأبجدية والرقمية في السلسلة. يعمل '\W' عكس '\w'.
'\مع' يتم استخدامه لمطابقة الحرف المعين في نهاية السلسلة. إنه يعمل مثل الحرف '$'.

المثال 1: مطابقة السلسلة باستخدام وظيفة Match()

يتم استخدام الدالة match() لمطابقة نمط regex في بداية السلسلة. يتم إعطاء بناء جملة هذه الوظيفة كما يلي:



بناء الجملة:

مباراة العودة ( سلسلة, أعلام = 0 )

هنا، يتم استخدام الوسيطة الأولى لتحديد نمط regex. يتم استخدام الوسيطة الثانية لتحديد السلسلة الرئيسية. الوسيطة الثالثة اختيارية وتستخدم لتحديد أنواع مختلفة من العلامات.

قم بإنشاء ملف Python باستخدام البرنامج النصي التالي الذي يطابق نمط regex بسلسلة محددة باستخدام وظيفة match(). أولاً، يتم استخدام نمط regex محدد للمطابقة. بعد ذلك، يتم أخذ كلمة البحث من المستخدم واستخدامها كنمط regex لمطابقة قيمة السلسلة. إذا تم العثور على أي تطابق، تتم طباعة كلمة البحث. وإلا، فسيتم طباعة السلسلة 'لم يتم العثور على قيمة مطابقة'.

# استيراد الوحدة الضرورية
إعادة الاستيراد

# تحديد الوظيفة لطباعة نتيجة المطابقة
def matchString ( ) :
# تحقق من القيمة المرجعة للدالة match()
لو جنبا إلى جنب مع ! = لا شيء:
مطبعة ( ''' + حصيرة.المجموعة ( ) + '' موجود في '' + القيمة + ''' )
آخر:
مطبعة ( 'لم يتم العثور على قيمة مطابقة.' )

# تحديد قيمة السلسلة
قيمة str = 'أولاً يخرج أولاً.'
# تطابق السلسلة بناءً على النمط
mat = re.match ( '^أولاً' ، strValue )
وظيفة #Call لطباعة نتيجة المباراة
matchString ( )

# خذ سلسلة البحث
inValue = input ( 'أدخل قيمة البحث:' )
mat = re.match ( inValue + , strValue )
وظيفة #Call لطباعة نتيجة المباراة
matchString ( )

يظهر الإخراج التالي لقيمة الإدخال 'الأولى':

المثال 2: ابحث عن السلسلة باستخدام وظيفة Findall()

تُستخدم الدالة findall () لإرجاع جميع الكلمات المطابقة الموجودة في السلسلة الرئيسية على شكل صف.

بناء الجملة:

re.findall ( سلسلة, أعلام = 0 )

هنا، يتم استخدام الوسيطة الأولى لتحديد نمط regex. يتم استخدام الوسيطة الثانية لتحديد السلسلة الرئيسية. الوسيطة الثالثة اختيارية وتستخدم لتحديد أنواع مختلفة من العلامات.

قم بإنشاء ملف Python باستخدام البرنامج النصي التالي الذي يأخذ قيمة سلسلة رئيسية وقيمة سلسلة بحث من المستخدم. بعد ذلك، استخدم كلمة البحث  في نمط التعبير العادي للعثور على كلمة البحث في السلسلة الرئيسية. تتم طباعة عدد إجمالي التطابقات في الإخراج.

# استيراد الوحدة الضرورية
إعادة الاستيراد

# خذ قيمة السلسلة
inValue = input ( 'أدخل سلسلة:' )

#خذ كلمة بحث
srcValue = input ( 'أدخل كلمة البحث:' )

# ابحث عن الكلمة في السلسلة
srcResult = re.findall ( قيمة سرك + '\في*' ، في القيمة )
#طباعة نتيجة البحث
مطبعة ( 'الكلمة '' + قيمة سرك + '' موجود في السلسلة ''
+ شارع ( فقط ( نتيجة ) ) + 'مرات.' )

وفقًا للإخراج، تم العثور على كلمة البحث 'أكل' مرتين في السلسلة الرئيسية 'نحن نأكل لنعيش ولا نعيش لنأكل'.

المثال 3: ابحث في السلسلة باستخدام وظيفة البحث ().

البحث () هو وظيفة أخرى للبحث عن نمط معين في قيمة سلسلة. يحتوي على نفس الوسائط الموجودة في الدالتين match() وfindall(). قم بإنشاء ملف Python باستخدام البرنامج النصي التالي الذي يبحث عن كلمة 'Python' في قيمة سلسلة سيتم أخذها من المستخدم. إذا كانت كلمة البحث موجودة في القيمة المدخلة، فسيتم طباعة رسالة نجاح. وإلا، فسيتم طباعة رسالة فشل.

# استيراد وحدة إعادة
إعادة الاستيراد

# خذ قيمة السلسلة
inValue = input ( 'أدخل سلسلة:' )
# ابحث عن كلمة معينة في قيمة السلسلة
srcResult = re.search ( ص 'بايثون\ث*' ، في القيمة )

#التحقق من وجود كلمة البحث أم لا
لو نتيجة سرك:
مطبعة ( ''' + srcResult.group ( ) + '' موجود في '' + في القيمة + ''' )
آخر:
مطبعة ( 'لم يتم العثور على سلسلة البحث.' )

انتاج:

يظهر الإخراج التالي إذا كانت سلسلة الإدخال هي 'أنا أحب برمجة بايثون':

يظهر الإخراج التالي إذا كانت سلسلة الإدخال هي 'أحب برمجة PHP':

المثال 4: استبدال السلسلة باستخدام الدالة Sub()

يتم استخدام الدالة الفرعية () للبحث في سلسلة معينة بناءً على النمط واستبدالها بكلمة أخرى. يتم إعطاء بناء جملة هذه الوظيفة كما يلي:

بناء الجملة:

re.sub ( نمط، استبدال_سلسلة، main_string )

تحتوي الوسيطة الأولى لهذه الوظيفة على النمط المستخدم للبحث في سلسلة معينة في السلسلة الرئيسية.

تحتوي الوسيطة الثانية لهذه الوظيفة على قيمة السلسلة 'استبدال'.

تحتوي الوسيطة الثالثة لهذه الوظيفة على السلسلة الرئيسية.

تقوم هذه الوظيفة بإرجاع السلسلة المستبدلة في حالة وجود أي كلمة مطابقة في السلسلة الرئيسية بناءً على الوسيطة الأولى.

قم بإنشاء ملف Python باستخدام البرنامج النصي التالي الذي يبحث عن رقمين في نهاية السلسلة. إذا كانت السلسلة تحتوي على رقمين في النهاية، فسيتم استبدال الأرقام بالسلسلة '$50'.

# استيراد وحدة إعادة
إعادة الاستيراد

# تحديد السلسلة الرئيسية
قيمة str = 'سعر الكتاب 70'

# تحديد نمط البحث
نمط = '[0-9]{2}'

# تحديد قيمة الاستبدال
استبدال القيمة = '50 دولارًا'

# ابحث عن السلسلة واستبدلها بناءً على النمط
moded_strValue = re.sub ( النمط، استبدال القيمة، strValue )
# اطبع قيم السلسلة الأصلية والمعدلة
مطبعة ( 'السلسلة الأصلية:' + قيمة str )
مطبعة ( 'سلسلة معدلة:' + تعديل_strValue )

انتاج:

كان هناك 70 في نهاية السلسلة الرئيسية. لذلك، يتم استبدال 70 بـ 50 دولارًا في السلسلة المستبدلة.

المثال 5: استبدال السلسلة باستخدام الدالة Subn()

تعمل الدالة subn() مثل الدالة sub()، باستثناء أنها تُرجع المخرجات على شكل صف حيث يحتوي الفهرس الأول على القيمة المستبدلة ويحتوي الفهرس الثاني على إجمالي عدد التطابقات.

قم بإنشاء ملف Python باستخدام البرنامج النصي التالي الذي يبحث في الحروف الهجائية من A إلى L في سلسلة 'LinuxHint.com' باستخدام الدالة subn():

# استيراد وحدة إعادة
إعادة الاستيراد

# تحديد السلسلة الرئيسية
قيمة str = 'لينوكس هينت.كوم'

# تحديد نمط البحث
نمط = '[إلى]'

# تحديد قيمة الاستبدال
استبدال القيمة = '*'

# ابحث عن السلسلة واستبدلها بناءً على النمط
modded_strValue = re.subn ( النمط، استبدال القيمة، strValue )
# اطبع السلسلة الأصلية ومخرجات subn ()
مطبعة ( 'السلسلة الأصلية: ' + قيمة str )
مطبعة ( 'إخراج الدالة الفرعية ():' )
مطبعة ( modded_strValue )

انتاج:

وفقًا للإخراج التالي، يتم استبدال الأحرف 'L' و'H' بالحرف '*'.

مثال 6: تقسيم السلسلة باستخدام وظيفة Split()

قم بإنشاء ملف Python باستخدام البرنامج النصي التالي الذي يستخدم وظيفة Split() لتقسيم السلسلة الرئيسية إلى أجزاء متعددة بناءً على نمط regex:

# استيراد وحدة إعادة
إعادة الاستيراد

# تحديد قيمة السلسلة
strVal= 'روبا أكتر، نيرا شودري، مظهر الإسلام'
# تحديد النمط الذي سيتم استخدامه لتقسيم البيانات
نمط = '[^A-Za-z ]'
# قم بتخزين القيم المقسمة في القائمة
Split_result = re.split ( نمط، strVal )
مطبعة ( 'إخراج الدالة سبليت ():' )
مطبعة ( Split_result )

انتاج:

وفقًا للإخراج، يتم تقسيم السلسلة الرئيسية إلى ثلاثة أجزاء بناءً على نمط '[^A-Za-z]' المستخدم في البرنامج النصي.

خاتمة

يتم عرض الغرض من الأحرف الأولية والنطاقات ووظائف Python المضمنة الأكثر استخدامًا للبحث عن السلاسل واستبدالها وتقسيمها في هذا البرنامج التعليمي باستخدام برامج Python النصية البسيطة.