تعلم التعبيرات النمطية في بايثون: أساسيات واستخدامات
التعبيرات النمطية (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.
عمل رائع! لقد تعلمت كيفية استخدام التعبيرات النمطية في بايثون للبحث والتلاعب بالنصوص، وهي أداة قوية لمعالجة السلاسل النصية.
اترك تعليقاً