Python RegEx
یک RegEX یا Regular Expression (عبارت های منظم) یک دنباله از کاراکتر ها است که یک الگوی خاص برای جستجو را نشان میدهد.
RegEx میتواند برای چک کردن این که آیا یک رشته متنی شامل عبارت ها یا فرمت خاصی است یا نه استفاده شود (مثال: چک کردن این که آیا اعداد وارد شده به فرمت یک شماره تلفن معتبر هستند یا نه)
RegEx Module
پایتون یک پکیج از پیش ساخته شده به نام re دارد که امکان کار با عبارت های منظم را فراهم میکند.
import re
عبارت های منظم در پایتون
وقتی که ماژول re را import میکنید میتوانید با عبارت های منظم کار کنید.
مثال: جستجوی رشته ای که با “The” شروع شود و با “Spain” تمام شود.
import
re
txt = "The rain in Spain"
x = re.search("^The.*Spain$", txt)
توابع عبارت های منظم
ماژول re توابعی را برای ساده کردن جستجو روی رشته ها ارائه میدهد.
کاراکتر ها با معنی خاص Metacharacters
دنباله های خاص
با استفاده از \ میتوانید یک دنباله با معنی خاص به وجود بیاورید و به دنبال آن از آنچه در لیست قبلی مطرح شد استفاده کنید.
مجموعه های منظم
مجموعه ای از کاراکتر ها داخل [] معنای خاصی دارند.
تابع ()findall
تابع ()findall یک لیست از تمام موارد تطبیق یافته را میدهد.
import re
str = "The rain in Spain"
x = re.findall("ai", str)
print(x)
یک لیست از تمام موارد مطابقت یافته را میدهد در صورتی که هیچ موردی وجود نداشت لیست خالی میدهد.
import re
str = "The rain in Spain"
x = re.findall("Portugal", str)
print(x)
تابع ()search
تابع ()search برای پیدا کردن یک الگو در رشته استفاده میشود و در صورت وجود یک شیئ را باز میگرداند و اگر بیش از یک مورد وجود داشت اولین الگوی یافته شده را باز میگرداند.
مثال: جستجو برای پیدا کردن اولین فضای خالی در رشته
import re
str = "The rain in Spain"
x = re.search("\s", str)
print("The first white-space character is located in
position:", x.start())
اگر هیچ موردی پیدا نشود None را بر میگرداند
import re
str = "The rain in Spain"
x = re.search("Portugal", str)
print(x)
تابع ()split
تابع ()split برای برش دادن رشته در نقاط مورد تطبیق با الگوی خواسته شده استفاده میشود و یک لیست از تمام موارد مورد تطبیق در الگوی خواسته شده را میدهد.
مثال: جدا کردن رشته در هرکجا که یک فضای خالی بود.
import re
str = "The rain in Spain"
x = re.split("\s", str)
print(x)
همچنین میتوانید تعداد دفعات اعمال شدن این الگو را با پارامتر maxsplit کنترل کنید.
مثال: رشته را فقط در اولین فضای خالی جدا کن
import re
str = "The rain in Spain"
x = re.split("\s", str,
1)
print(x)