RegEx Python
- صفحه قبلی JSON Python
- صفحه بعدی PIP Python
رگهای عادی یا RegEx یک توالی کاراکترها برای تشکیل الگوی جستجوی هستند.
RegEx یا رگهای عادی میتوانند برای بررسی این که یک رشته شامل الگوی جستجوی مشخص شده است یا خیر، استفاده شوند.
مدول RegEx
پایون ارائهدهندهای به نام re
پکجیهای داخلی، قابل استفاده برای پردازش عبارتهای正则 است.
ورود re
پکجی
import re
RegEx در Python
ورود re
پکجی که پس از وارد کردن میتوان از عبارتهای正则 استفاده کرد:
مثال
رشته را جستجو میکنیم تا ببینیم آیا با "China" شروع میشود و با "country" به پایان میرسد:
import re txt = "China is a great country" x = re.search("^China.*country$", txt)
функشنهای RegEx
re
پکجی که یک مجموعه از функشنها را ارائه میدهد، اجازه میدهد تا رشتهها را برای جفتیابی جستجو کنیم:
функشن | توضیحات |
---|---|
findall | لیستی از جفتهای یافت شده را بازمیگرداند |
search | اگر هر بخشی از رشته دارای جفت یافت شده باشد، جفت یافت میشود |
split | لیستی از جفتهای یافت شده را در هر بار جفتیابی بازمیگرداند |
sub | با استفاده از رشته، یک یا چند جفت یافت شده را جایگزین میکند |
کاراکترهای خاص
کاراکترهای خاصی هستند که دارای معنای خاصی هستند:
کاراکتر | توضیحات | مثال | TIY |
---|---|---|---|
[] | گروهی از کاراکترها | "[a-m]" | آموزش |
\ | جلسههای خاص نشاندهنده (همچنین میتوانند برای فرار از کاراکترهای خاص استفاده شوند) | "\d" | آموزش |
. | هر کاراکتر (به استثنای کاراکترهای خطوط کشویی) | "he..o" | آموزش |
^ | به شروع میرسد | "^hello" | آموزش |
$ | به پایان میرسد | "world$" | آموزش |
* | ظهور صفر بار یا بیشتر | "aix*" | آموزش |
+ | ظهور یک بار یا بیشتر | "aix+" | آموزش |
{} | تعداد دقیق مشخص شدهای از ظهور | "al{2}" | آموزش |
| | هر دو | "falls|stays" | آموزش |
() | گرفتن و گروهبندی |
جلسههای خاص
جلسههای خاص به معنای \
دنبال یکی از کاراکترهای زیر دارد، دارای معنای خاصی است:
کاراکتر | توضیحات | مثال | TIY |
---|---|---|---|
\A | اگر کاراکتر مشخص شده در ابتدای رشته وجود دارد، جفت یافت میشود | "\AThe" | آموزش |
\b | یک جفت یافت میشود که کاراکتر مشخص شده در ابتدای یا انتهای کلمه قرار دارد |
r"\bain" r"ain\b" |
آموزش آموزش |
\B | یک جفت یافت میشود که کاراکتر مشخص شده وجود دارد اما در ابتدای کلمه (یا انتهای آن) نیست |
r"\Bain" r"ain\B" |
آموزش آموزش |
\d | یک جفت یافت میشود که رشته شامل اعداد (0-9) است | "\d" | آموزش |
\D | یک جفت یافت میشود که رشته شامل هیچ عددی نیست | "\D" | آموزش |
\s | یک جفت یافت میشود که رشته شامل هر کاراکتر خالی است | "\s" | آموزش |
\S | یک جفت یافت میشود که رشته شامل هیچ کاراکتر خالی نیست | "\S" | آموزش |
\w | یک جفت یافت میشود که رشته شامل هر کاراکتر کلمهای است کاراکترهایی از a تا Z، اعداد از 0 تا 9 و خط تیره زیرین _ |
"\w" | آموزش |
\W | یک جفت یافت میشود که رشته شامل هیچ کاراکتر کلمهای نیست | "\W" | آموزش |
\Z | اگر کاراکتر مشخص شده در انتهای رشته وجود دارد، جفت یافت میشود | "Spain\Z" | آموزش |
مجموعه (Set)
مجموعه (Set) یک جفت brackets است []
یک گروه از کاراکترها در میان برackets، که دارای معنای خاصی هستند:
مجموعه | توضیحات | آموزش |
---|---|---|
[arn] | تطابق یک کاراکتر که یکی از کاراکترهای指定 شده (a، r یا n) را شامل شود | آموزش |
[a-n] | تطابق هر کاراکتر کوچکی بین حروف الفبا a و n را بازمیگرداند | آموزش |
[^arn] | تطابق هر کاراکتری غیر از a، r و n را بازمیگرداند | آموزش |
[0123] | تطابق هر عددی از 0، 1، 2 یا 3 را بازمیگرداند | آموزش |
[0-9] | تطابق هر عددی بین 0 و 9 را بازمیگرداند | آموزش |
[0-5][0-9] | تطابق همه اعداد بین 0 تا 9 را بازمیگرداند | آموزش |
[a-zA-Z] | تطابق همه کاراکترهایی که بین حروف الفبا a و z قرار دارند را بازمیگرداند، بزرگ یا کوچک | آموزش |
[+] | در مجموعه، +، *، .، |، ()، $، {} هیچ معنای خاصی ندارند، بنابراین [+] به این معناست: تطابق همه کاراکترهای + در رشته را بازمیگرداند | آموزش |
توابع findall()
findall()
این تابع لیستی از همه تطابقها بازمیگرداند.
مثال
لیست همه تطابقها را چاپ کنید:
import re str = "China is a great country" x = re.findall("a", str) print(x)
این لیست شامل تطابقها به ترتیب یافت شده است.
اگر هیچ تطابق یافت نشد، لیست خالی بازمیگرداند:
مثال
اگر هیچ تطابق یافت نشد، لیست خالی بازمیگرداند:
import re str = "China is a great country" x = re.findall("USA", str) print(x)
توابع search()
search()
این تابع تطابقهای رشته را جستجو میکند و اگر تطابق وجود دارد، یک شیء Match بازمیگرداند.
اگر چندین تطابق وجود دارد، تنها اولین تطابق را بازمیگرداند:
مثال
اولین کاراکتر خالی در رشته را جستجو کنید:
import re str = "China is a great country" x = re.search("\s", str) print("موقعیت اولین کاراکتر خالی: ", x.start())
اگر هیچ تطابق یافت نشد، مقدار بازگشتی: هیچچیزی
:
مثال
جستجو بدون بازگشت نتایج مطابقت:
import re str = "China is a great country" x = re.search("USA", str) print(x)
توابع split()
split()
این تابع یک لیست بازمیگرداند که در آن رشتهها در هر بار که با آنها مطابقت یافتند، شکسته شدهاند:
مثال
در هر کاراکتر خالی رشته را شکست:
import re str = "China is a great country" x = re.split("\s", str) print(x)
شما میتوانید با مشخص کردن maxsplit
با استفاده از پارامتر برای کنترل تعداد دفعات:
مثال
تنها در اولین بار که به آن اشاره میشود، رشته را شکست:
import re str = "China is a great country" x = re.split("\s", str, 1) print(x)
توابع sub()
sub()
این تابع متن شما را با متن انتخابی شما جایگزین میکند:
مثال
با استفاده از عدد 9، همه کاراکترهای خالی را جایگزین کنید:
import re str = "China is a great country" x = re.sub("\s", "9", str) print(x)
شما میتوانید با مشخص کردن count
پارامتر برای کنترل تعداد جایگزینها:
مثال
دو بار اول را جایگزین کنید:
import re str = "China is a great country" x = re.sub("\s", "9", str, 2) print(x)
شیء Match
شیء Match یک شیء است که شامل اطلاعات مربوط به جستجو و نتایج است.
توضیح:اگر هیچ تطابقیافتهای نباشد، مقدار بازگشتی هیچچیزی
، به جای شیء Match.
مثال
اجرای این کد به شیء Match بازمیگردد:
import re str = "China is a great country" x = re.search("a", str) print(x) # یک شیء را چاپ میکند
شیء Match ارائهدهندهای از ویژگیها و روشهایی برای دسترسی به اطلاعات مربوط به جستجو و نتایج است:
span()
تکمیلهای بازگشتی شامل موقعیت شروع و پایان تطابقیافتهها هستند.string
رشتهای که به فونکشن ورودی داده شده را بازگردانیدgroup()
بخشهای تطابقیافته را بازگردانید
مثال
موقعیت اولین تطابقیافته (موقعیت شروع و پایان) را چاپ کنید.
جستجوی عبارتهای حاوی حرف بزرگ "C" به عنوان اولین حرف هر کلمه:
import re str = "China is a great country" x = re.search(r"\bC\w+", str) print(x.span())
مثال
رشتهای که به فونکشن ورودی داده شده را چاپ کنید:
import re str = "China is a great country" x = re.search(r"\bC\w+", str) print(x.string)
مثال
بخشهای تطابقیافته را چاپ کنید.
جستجوی عبارتهای حاوی حرف بزرگ "C" به عنوان اولین حرف هر کلمه:
import re str = "China is a great country" x = re.search(r"\bC\w+", str) print(x.group())
توضیح:اگر هیچ گزینهای مطابقت نداشته باشد، مقدار بازگشتی هیچچیزی
، به جای شیء Match.
- صفحه قبلی JSON Python
- صفحه بعدی PIP Python