٪۴۰ تخفیف تابستانه شروع شد! بزرگترین حراج سال ما

به ما بپیوندید

آموزش پایتون RegEx

RegEx یا Regular Expression دنباله ای از کاراکترها است که یک الگوی جستجو را تشکیل می دهد. RegEx می تواند برای بررسی اینکه آیا یک رشته حاوی الگوی جستجوی مشخص شده است استفاده شود. ماژول RegEx پایتون دارای یک بسته…

محمد یوسفی

12 سپتامبر 2021

RegEx یا Regular Expression دنباله ای از کاراکترها است که یک الگوی جستجو را تشکیل می دهد.

RegEx می تواند برای بررسی اینکه آیا یک رشته حاوی الگوی جستجوی مشخص شده است استفاده شود.


ماژول RegEx

پایتون دارای یک بسته داخلی به نام است reکه می تواند برای کار با عبارات معمولی مورد استفاده قرار گیرد.

reماژول را وارد کنید:

import re

RegEx در پایتون

هنگامی که reماژول را وارد کرده اید ، می توانید از عبارات معمولی استفاده کنید:

مثال

رشته را جستجو کنید تا ببینید آیا با “The” شروع می شود و با “Spain” خاتمه می یابد:

import re

txt = "The rain in Spain"
x = re.search("^The.*Spain$", txt)

توابع RegEx

این reماژول مجموعه ای از توابع را ارائه می دهد که به ما امکان می دهد رشته ای برای مطابقت جستجو کنیم:


فرا شخصیت ها

فرا شخصیت ها شخصیت هایی هستند که معنی خاصی دارند:


دنباله های ویژه

یک دنباله ویژه \با یکی از کاراکترهای لیست زیر دنبال می شود و معنای خاصی دارد:


تنظیم می کند

مجموعه مجموعه ای از کاراکترها در داخل یک جفت براکت مربع []با معنی خاص است:


تابع findall ()

findall()تابع یک لیست که شامل تمام مسابقات را برمی گرداند.

مثال

چاپ لیست همه مسابقات:

import re

txt = "The rain in Spain"
x = re.findall("ai", txt)
print(x)

لیست شامل کبریت ها به ترتیب یافت شده است.

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

مثال

اگر مطابقی پیدا نشد ، یک لیست خالی را بازگردانید:

import re

txt = "The rain in Spain"
x = re.findall("Portugal", txt)
print(x)

تابع search ()

search()تابع جستجو رشته برای یک مسابقه و برمی گرداند شی بازی اگر یک بازی وجود دارد.

اگر بیش از یک مسابقه وجود داشته باشد ، تنها اولین رخداد مسابقه عودت داده می شود:

مثال

اولین کاراکتر فضای سفید را در رشته جستجو کنید:

import re

txt = "The rain in Spain"
x = re.search("\s", txt)

print("The first white-space character is located in position:", x.start())

اگر هیچ مطابقی پیدا نشد ، مقدار Noneبرگشت داده می شود:

مثال

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

import re

txt = "The rain in Spain"
x = re.search("Portugal", txt)
print(x)

تابع split ()

split()تابع یک لیست که در آن رشته است تقسیم در هر مسابقه است را بر می گرداند:

مثال

تقسیم بر روی هر کاراکتر فضای سفید:

import re

txt = "The rain in Spain"
x = re.split("\s", txt)
print(x)

با تعیین maxsplit پارامتر می توانید تعداد وقایع را کنترل کنید :

مثال

رشته را فقط در اولین بار تقسیم کنید:

import re

txt = "The rain in Spain"
x = re.split("\s", txt, 1)
print(x)

تابع sub ()

این sub()تابع متن انتخابی شما را جایگزین مسابقات می کند:

مثال

هر کاراکتر فضای سفید را با عدد 9 جایگزین کنید:

import re

txt = "The rain in Spain"
x = re.sub("\s", "9", txt)
print(x)

با تعیین count پارامتر می توانید تعداد جایگزین ها را کنترل کنید :

مثال

2 بار اول را جایگزین کنید:

import re

txt = "The rain in Spain"
x = re.sub("\s", "9", txt, 2)
print(x)

مطابقت با شی

Match Object یک شیء حاوی اطلاعات مربوط به جستجو و نتیجه است.

توجه: در صورت عدم مطابقت ، مقدار Noneبه جای Match Object بازگردانده می شود.

مثال

جستجویی انجام دهید که Match Object را برگرداند:

import re

txt = "The rain in Spain"
x = re.search("ai", txt)
print(x) #this will print an object

شی Match دارای ویژگی ها و روش هایی است که برای بازیابی اطلاعات مربوط به جستجو استفاده می شود و نتیجه:

.span()یک تپل شامل موقعیت های شروع و پایان مسابقه را برمی گرداند.
.stringرشته ای که به تابع منتقل شده است را
.group()برمی گرداند ، قسمتی از رشته را که در آن تطابق وجود داشت برمی گرداند

مثال

موقعیت (شروع و پایان) اولین رویداد مسابقه را چاپ کنید.

عبارت معمولی به دنبال کلماتی است که با حروف بزرگ “S” شروع می شود:

import re

txt = "The rain in Spain"
x = re.search(r"\bS\w+", txt)
print(x.span())

مثال

رشته ای که به تابع منتقل شده است را چاپ کنید:

import re

txt = "The rain in Spain"
x = re.search(r"\bS\w+", txt)
print(x.string)

مثال

قسمتی از رشته را که در آن کبریت وجود داشت ، چاپ کنید.

عبارت معمولی به دنبال کلماتی است که با حروف بزرگ “S” شروع می شود:

import re

txt = "The rain in Spain"
x = re.search(r"\bS\w+", txt)
print(x.group())

توجه: در صورت عدم مطابقت ، مقدار Noneبه جای Match Object بازگردانده می شود.

منبع

مطالب مرتبط

0 0 رای ها
امتیازدهی به مقاله
اشتراک در
اطلاع از
guest
0 نظرات
بازخورد (Feedback) های اینلاین
مشاهده همه دیدگاه ها