ماژول RegEx در پایتون

RegEx یک ماژول در پایتون و مخفف Regular Expression است و با نام re شناخته می شود.

ماژول RegEx در پایتون برای کار با عبارت‌های منظم استفاده می‌شود و ابزارهایی برای جستجو، تطابق، و پردازش متن فراهم می‌کند.

برای استفاده از ماژول ابتدا آن را import می کنیم.

import re

تطابق رشته در پایتون

با ماژول re می توان وجود یک الگو در یک رشته را بررسی کرد و آنها را تطابق داد.

برای مثال یک الگو ایجاد می کنیم که ابتدای رشته با حرف v و انتهای رشته با حرف e باشد و رشته 5 حرف باشد.

text= '^v...e$'

رشته ای را با مشخصات الگو بالا ایجاد می کنیم.

test = 'vaaae'

با ماژول re و متد math در آن، تطابق این دو رشته را بررسی می کنیم.

result = re.match(text, test)

با استفاده از دستور if نتیجه را بررسی می کنیم و نتیجه را نمایش می دهیم.

نکته: برای آشنایی با این دستور به درس if...else پایتون  مراجعه کنید.

if result:
  print("true")

متاکاراکتر (Metacharacters) در پایتون

برای ایجاد الگوهای مورد نظر خود، باید از متاکاراکترها استفاده کنیم.

متاکاراکترها در اصل کاراکترهایی از ماژول regex هستند که توسط این ماژول تفسیر می شوند و قابل استفاده اند.

[] . ^ $ * + ? {} () \ |

در جدول زیر کاربرد متاکاراکترها را مشاهده می کنیم.

کاراکتر کاربرد مثال
[] مجموعه ای از کاراکترها "[a-m]"
\ پرش از برخی کاراکترها "\"
. جایگاه دیگر کاراکترهای بدون اهمیت "he..o"
^ شروع رشته "hello^"
$ پایان رشته "$planet"
* تعداد وقوع یک رشته از صفر "he.*o"
+ تعداد وقوع یک رشته از یک "he.+o"
? تعداد وقوع یک رشته از صفر "he.?o"
{} تطابق دقیق به یک میزان خاص "he.{2}o"
| به جای or استفاده می شود "falls|stays"
() گروه کردن الگو ها --------------

متد ()finall در پایتون

متد ()finall لیستی از همه مقادیری که منطبق با الگو است را برمی گرداند.

re.findall("PNL", text)

نکته: اگر هیچ مقداری منطبق با الگو نباشد یک لیست خالی برمی گرداند.

متد ()search در پایتون

متد ()search اولین مورد منطبق شده را برمی گرداند.

اگر چند مورد از از الگو در رشته وجود داشته باشد، ایندکس اولین مورد را برمی گرداند.

re.search("\s", text)

نکته: اگر تطابقی وجود نداشته باشد None را برمی گرداند.

متد ()split در پایتون

متد ()split در هر ایندکسی از رشته که تطابق وجود دارد، رشته را قطع می کند و به لیست تبدیل می کند.

x = re.split("\s", text)

متد ()sub در پایتون

متد ()sub می تواند موارد منطبق شده را با مقداری جدید جایگزین کند.

re.sub("\s", "5", text)

توالی ویژه (Special Sequences) در پایتون

توالی های ویژه، تطابق های رشته ها را به صورت خاص بررسی می کند و دستورات مختلفی دارد.

کاراکتر کاربرد مثال
A\ اگر کاراکتر تعیین شده در ابتدای رشته وجود داشته باشد، تطابق را برمی گرداند. نمونه کد
b\ اگر کاراکترها در ابتدا یا انتهای یک کلمه از رشته باشد، تطابق را برمی گرداند. نمونه کد
B\ اگر کاراکترهای موردنظر ما در رشته وجود داشتند، تطابق را برمی گرداند. نمونه کد
d\ اگر رشته حاوی اعداد 0 تا 9 باشد، تطابق را برمی گرداند. نمونه کد
D\ اگر رشته حاوی اعداد نباشد، تطابق را برمی گرداند. نمونه کد
s\ اگر در رشته کاراکتر فاصله(space) وجود داشت، تطابق را برمی گرداند. نمونه کد
S\ اگر رشته هیچ کاراکتر فاصله ای نداشته باشد ، تطابق را برمی گرداند. نمونه کد
w\ اگر رشته دارای کاراکترهای(اعداد 0-9 و حروف a تا z و...) باشد، تطابق را برمی گرداند. نمونه کد
\W اگر رشته شامل کاراکترهای(اعداد 0-9 و حروف a تا z و...) نباشد، تطابق را برمی گرداند. نمونه کد
\Z اگر انتهای رشته شامل کاراکترهای(اعداد 0-9 و حروف a تا z و...) باشد، تطابق را برمی گرداند. نمونه کد

مجموعه ها در ماژول RegEx پایتون

مجموعه ها در این ماژول در یک براکت [ ] ایجاد می شوند و براساس محتویات داخل مجموعه،  تطابق رشته ها را بررسی می کند.

مجموعه کاربرد مثال
[abc] اگر در رشته یکی از حروف a ، b یا c وجود داشت، تطابق را برمی گرداند. نمونه کد
[a-g] اگر حروف a تا g در رشته وجود داشت، یک لیست از حروف ایجاد می کند و تطابق را برمی گرداند. نمونه کد
[abc^] اگر در رشته حروف a یا b یا c وجود نداشت، تطابق را برمی گرداند. نمونه کد
[123] اگر اعداد 1 یا 2 یا 3 در رشته وجود داشت، تطابق را برمی گرداند. نمونه کد
[0-9] اگر عددی بین 0 تا 9 در رشته وجود داشت، تطابق برمی گردد. نمونه کد
[1-5][0-5] اگر اعداد 10 تا 55 در رشته وجود داشت، تطابق را برمی گرداند. نمونه کد
[a-zA-Z] هر کاراکتر با حروف بزرگ و کوچک انگلیسی در رشته وجود داشت، تطابق را برمی گرداند. نمونه کد
[+] اگر کاراکتر + در رشته وجود داشت، تطابق را برمی گرداند. نمونه کد

خلاصه درس

در این درس با ماژول RegEx و کاربرد آن آشنا شدید.

توسعه دهندگان
علیرضا چمنی