Python – رجکس (RegEx)
در پایتون، RegEx یا عبارتهای با قاعده، توالیای از کاراکترها هستند که الگوهای جستجو را تشکیل میدهند. از این الگوها برای بررسی اینکه آیا یک رشته شامل الگوی جستجوی خاصی هست یا خیر استفاده میشود.
ماژول RegEx
پایتون یک بستهی داخلی به نام re دارد که برای کار با Regular Expressionها (عبارتهای با قاعده) استفاده میشود.
برای شروع، باید ماژول re را وارد کنید:
import re
توابع مهم در ماژول re
۱. تابع findall()
این تابع لیستی از تمام الگوهای مطابق را بازمیگرداند:
مثال:
import re
txt = "The rain in Spain"
x = re.findall("ai", txt)
print(x) # نتیجه: ['ai', 'ai']
۲. تابع search()
این تابع اولین موردی که با الگو مطابق است را جستجو کرده و شیء Match را برمیگرداند. اگر مطابقی پیدا نشود، مقدار None
بازگردانده میشود.
مثال:
import re
txt = "The rain in Spain"
x = re.search("s", txt)
print("The first white-space character is located in position:", x.start())
۳. تابع split()
این تابع رشته را در هر تطابق الگو تقسیم کرده و یک لیست بازمیگرداند.
مثال:
import re
txt = "The rain in Spain"
x = re.split("s", txt)
print(x) # نتیجه: ['The', 'rain', 'in', 'Spain']
۴. تابع sub()
این تابع تمامی تطابقها را با یک رشتهی مشخص جایگزین میکند.
مثال:
import re
txt = "The rain in Spain"
x = re.sub("s", "9", txt)
print(x) # نتیجه: The9rain9in9Spain
کاراکترهای خاص (Metacharacters)
[]
: مجموعهای از کاراکترها: برای اعلام توالیهای خاص مانند
d
(برای اعداد).
: هر کاراکتری (به جز newline)^
: شروع رشته$
: پایان رشته*
: صفر یا بیشتر از وقوعها+
: یک یا بیشتر از وقوعها?
: صفر یا یک وقوع{}
: تعداد دقیق وقوعها|
: یا()
: گروهبندی
توالیهای خاص (Special Sequences)
A
: مطابقت در ابتدای رشتهb
: مطابقت در ابتدای یا انتهای کلمهd
: مطابقت با اعداد (0-9)D
: مطابقت با کاراکترهایی که عدد نیستندs
: مطابقت با فضای خالیS
: مطابقت با کاراکترهایی که فضای خالی نیستندw
: مطابقت با کاراکترهای کلمهای (a تا Z، 0 تا 9، _)W
: مطابقت با کاراکترهایی که جزو کلمات نیستندZ
: مطابقت در انتهای رشته
کار با شیء Match
شیء Match شامل اطلاعاتی در مورد جستجو و نتیجه است.
مثال:
import re
txt = "The rain in Spain"
x = re.search(r"bSw+", txt)
print(x.span()) # بازگشت محدوده تطابق
print(x.string) # بازگشت رشته ورودی
print(x.group()) # بازگشت قسمتی از رشته که تطابق دارد
در صورتی که تطابقی پیدا نشود، مقدار None
به جای شیء Match برگردانده میشود.
برای ارسال نظر لطفا ابتدا وارد حساب کاربری خود شوید. صفحه ورود و ثبت نام