تعلم التعبيرات النمطية في بايثون: أساسيات واستخدامات

Amine
15/09/2024

التعبيرات النمطية (regex) هي أداة قوية للعمل مع الأنماط في النصوص. يمكنك استخدامها للبحث، والمطابقة، والتلاعب بالسلاسل النصية بطرق ستكون صعبة باستخدام طرق السلاسل النصية التقليدية. توفر بايثون وحدة re للعمل مع التعبيرات النمطية.

الوظائف الأساسية للتعبيرات النمطية

إليك نظرة سريعة على بعض الوظائف الشائعة في وحدة re:

  • re.search(): يبحث عن نمط داخل سلسلة نصية.
  • re.match(): يتحقق مما إذا كان بداية السلسلة النصية تتطابق مع نمط معين.
  • re.findall(): يعيد جميع الحالات التي تتطابق مع النمط داخل السلسلة النصية.
  • re.sub(): يستبدل جميع حالات النمط بنص محدد.

استخدام re.search()

تبحث دالة re.search() عن أول حالة تطابق للنمط في السلسلة النصية وتعيد كائن المطابقة إذا تم العثور عليه. إليك مثال:

import re

text = "The rain in Spain"
match = re.search(r"\brain\b", text)

if match:
    print("Match found!")
else:
    print("No match.")

r"\brain\b": هذه سلسلة نصية خام تحتوي على نمط regex يتطابق مع الكلمة “rain” ككلمة كاملة.

\b: يتطابق مع حدود الكلمة.

استخدام re.findall()

تعيد دالة re.findall() جميع حالات النمط في السلسلة النصية كقائمة:

import re

text = "The rain in Spain stays mainly in the plain."
matches = re.findall(r"in", text)
print(matches)  # Output: ['in', 'in', 'in', 'in']

استخدام re.sub()

تستبدل دالة re.sub() جميع حالات النمط بنص محدد:

import re

text = "The rain in Spain"
new_text = re.sub(r"rain", "snow", text)
print(new_text)  # Output: The snow in Spain

التمارين

التمرين 1

اكتب برنامجًا يستخدم re.search() للتحقق مما إذا كانت السلسلة النصية تحتوي على أي أرقام.

import re

text = "Hello123"
if re.search(r"\d", text):
    print("The string contains digits.")
else:
    print("No digits found.")

التمرين 2

استخدم re.findall() لاستخراج جميع الكلمات من سلسلة نصية التي تبدأ بحرف كبير.

import re

text = "Alice went to Wonderland and met the White Rabbit."
capitalized_words = re.findall(r"\b[A-Z][a-z]*\b", text)
print(capitalized_words)  # Output: ['Alice', 'Wonderland', 'White', 'Rabbit']

التمرين 3

استخدم re.sub() لاستبدال جميع حالات المسافات في السلسلة النصية بشرطة -.

import re

text = "Replace all spaces with hyphens."
new_text = re.sub(r"\s", "-", text)
print(new_text)  # Output: Replace-all-spaces-with-hyphens.

عمل رائع! لقد تعلمت كيفية استخدام التعبيرات النمطية في بايثون للبحث والتلاعب بالنصوص، وهي أداة قوية لمعالجة السلاسل النصية.

التعليقات

اترك تعليقاً