Python RegEx (muntazam ifodalar)
RegEx yoki Regular Expression - qidiruv sxemasini tashkil etuvchi belgilar ketma-ketligi.
RegEx-dan stringda belgilangan qidiruv namunasi mavjudligini tekshirish uchun foydalanish mumkin.
RegEx moduli
Python-daredeb nomlangan o‘rnatilgan paket mavjud bo‘lib, undan Oddiy ifodalar bilan ishlash uchun foydalanish mumkin.
remodulini import qiling:
import re
Pythonda RegEx
remodulini import qilganingizda, oddiy iboralardan foydalanishni boshlashingiz mumkin:
Misol
"The" bilan boshlanib, "Ispaniya" bilan tugashini bilish uchun stringni qidiring:
import re
txt = "The rain in Spain"
x = re.search("^The.*Spain$", txt)
O‘zingiz sinab ko‘ring »
RegEx funksiyalari
remoduli bizga mos keladigan stringni qidirishga imkon beruvchi funksiyalar to‘plamini taklif qiladi:
| Function | Tavsif |
|---|---|
| findall | Barcha mosliklarni o‘z ichiga olgan ro‘yxatni qaytaradi |
| search | Agar stringning istalgan joyida moslik mavjud bo‘lsa, Match obyektini qaytaradi |
| split | Har bir o‘yinda string bo‘lingan ro‘yxatni qaytaradi |
| sub | Bir yoki bir nechta moslikni string bilan almashtiradi |
Meta belgilar
Metabelgilar - bu alohida ma’noga ega bo‘lgan belgilar:
| Character | Tavsif | Misol | Try it |
|---|---|---|---|
| [] | Belgilar to‘plami | "[a-m]" | Try it » |
| \ | Maxsus ketma-ketlikni bildiradi (maxsus belgilarni ekranlash uchun ham ishlatilishi mumkin) | "\d" | Try it » |
| . | Any character (except newline character) | "he..o" | Try it » |
| ^ | Bilan boshlanadi | "^hello" | Try it » |
| $ | Bilan tugaydi | "planet$" | Try it » |
| * | Nol yoki undan ko‘p takrorlanish | "he.*o" | Try it » |
| + | Bir yoki undan ko‘p takrorlanish | "he.+o" | Try it » |
| ? | Nol yoki bitta takrorlanish | "he.?o" | Try it » |
| {} | Aynan belgilangan miqdordagi takrorlanish | "he.{2}o" | Try it » |
| | | Yoki u, yoki bu | "falls|stays" | Try it » |
| () | Ushlash va guruhlash |
Bayroqlar
Oddiy iboralardan foydalanganda naqshga bayroqlar qo‘shishingiz mumkin.
| Flag | Shorthand | Tavsif | Try it |
|---|---|---|---|
| re.ASCII | re.A | Faqat ASCII mosliklarni qaytaradi | Try it » |
| re.DEBUG | Debug ma’lumotlarini qaytaradi | Try it » | |
| re.DOTALL | re.S | . belgisini barcha belgilarga (jumladan, yangi qator belgisiga ham) mos keladigan qiladi | Try it » |
| re.IGNORECASE | re.I | Case-insensitive matching | Try it » |
| re.MULTILINE | re.M | Har bir qatorning boshida/oxiridagi mosliklarni qaytaradi | Try it » |
| re.NOFLAG | Ushbu naqsh uchun hech qanday bayroq o‘rnatilmaganligini bildiradi | ||
| re.UNICODE | re.U | Unicode mosliklarini qaytaradi. Bu Python 3 dan birlamchi hisoblanadi. Python 2 uchun: bu bayroqdan faqat Unicode mosliklarini qaytarish uchun foydalaning | Try it » |
| re.VERBOSE | re.X | Naqshlar ichida bo‘shliqlar va sharhlarga ruxsat beradi. Naqshni yanada o‘qilishi mumkin qiladi | Try it » |
Maxsus ketma-ketliklar
Maxsus ketma-ketlik - quyidagi ro‘yxatdagi belgilardan biri bo‘lgan \ belgisi va alohida ma’noga ega:
| Character | Tavsif | Misol | Try it |
|---|---|---|---|
| \A | Belgilangan belgilar string boshida bo‘lsa, moslikni qaytaradi | "\AThe" | Try it » |
| \b | Belgilangan belgilar so‘z boshida yoki oxirida bo‘lgan moslikni qaytaradi (boshidagi “r” string “xom string” sifatida ishlayotganiga ishonch hosil qiladi) | r"\bain" r"ain\b" |
Sinab ko‘ring » Sinab ko‘ring » |
| \B | Belgilangan belgilar mavjud bo‘lgan moslikni qaytaradi, lekin so‘z boshida (yoki oxirida) EMAS (boshidagi “r” string “xom string” sifatida ishlayotganiga ishonch hosil qiladi) | r"\Bain" r"ain\B" |
Sinab ko‘ring » Sinab ko‘ring » |
| \d | Stringda raqamlar (0-9 oralig‘idagi sonlar) mavjud bo‘lgan moslikni qaytaradi | "\d" | Try it » |
| \D | Qatorda raqamlar mavjud bo‘lmagan moslikni qaytaradi | "\D" | Try it » |
| \s | Stringda bo‘sh joy belgisi bo‘lgan moslikni qaytaradi | "\s" | Try it » |
| \S | Qatorda bo‘sh joy belgisi YO‘Q bo‘lgan moslikni qaytaradi | "\S" | Try it » |
| \w | Stringda istalgan so‘z belgilari (a dan Z gacha belgilar, 0-9 raqamlar va pastki chiziq _ belgisi) mavjud bo‘lgan moslikni qaytaradi | "\w" | Try it » |
| \W | Qatorda hech qanday so‘z belgilari YO‘Q bo‘lgan moslikni qaytaradi | "\W" | Try it » |
| \Z | Belgilangan belgilar string oxirida bo‘lsa, moslikni qaytaradi | "Spain\Z" | Try it » |
Setlar
Set - bu maxsus ma’noga ega bo‘lgan [] kvadrat qavslar ichidagi belgilar to‘plami:
| Set | Tavsif | Try it |
|---|---|---|
| [arn] | Belgilangan belgilardan biri (a, r yoki n) mavjud bo‘lgan moslikni qaytaradi |
Try it » |
| [a-n] | Har qanday kichik harf uchun moslikni qaytaradi, alifbo tartibida
a va n |
Try it » |
| [^arn] | a dan tashqari har qanday belgi uchun moslikni qaytaradi,
r va n |
Try it » |
| [0123] | Belgilangan raqamlardan istalgani (0, 1, 2 yoki
3) mavjud bo‘lgan moslikni qaytaradi |
Try it » |
| [0-9] | orasidagi istalgan raqam uchun moslikni qaytaradi
0 va 9 |
Try it » |
| [0-5][0-9] | 00 va
59 dan har qanday ikki xonali raqamlar uchun moslikni qaytaradi |
Try it » |
| [a-zA-Z] | Alifbo tartibida har qanday belgi uchun moslikni qaytaradi
a va z , kichik YOKI katta harf |
Try it » |
| [+] | To‘plamlarda +, *, ., |, (), $, {} hech qanday maxsus ma’noga ega emas, shuning uchun [+] quyidagini anglatadi: stringdagi istalgan + belgisiga moslikni qaytarish |
Try it » |
findall() funksiyasi
findall() funksiyasi barcha mosliklarni o‘z ichiga olgan listni qaytaradi.
Misol
Barcha mosliklar ro‘yxatini chop eting:
import re
txt = "The rain in Spain"
x = re.findall("ai", txt)
print(x)
O‘zingiz sinab ko‘ring »
Ro‘yxatda ular topilgan tartibda mosliklar mavjud.
Hech qanday moslik topilmasa, bo‘sh list qaytariladi:
Misol
Hech qanday moslik topilmasa, bo‘sh listni qaytaring:
import re
txt = "The rain in Spain"
x = re.findall("Portugal", txt)
print(x)
O‘zingiz sinab ko‘ring »
Search() funksiyasi
search() funksiyasi stringda moslikni qidiradi va mos keladigan bo‘lsa, Match obyektini qaytaradi.
Agar bir nechta o‘yin bo‘lsa, faqat birinchi o‘yin qaytariladi:
Misol
Stringdagi birinchi bo‘sh joy belgisini qidiring:
import re
txt = "The rain in Spain"
x = re.search("\s", txt)
print("The first white-space character is located in position:", x.start())
O‘zingiz sinab ko‘ring »
Hech qanday moslik topilmasa,Noneqiymati qaytariladi:
Misol
Hech qanday mos kelmaydigan qidiruvni amalga oshiring:
import re
txt = "The rain in Spain"
x = re.search("Portugal", txt)
print(x)
O‘zingiz sinab ko‘ring »
Split() funksiyasi
split() funksiyasi har bir o‘yinda string bo‘lingan listni qaytaradi:
Misol
Har bir bo‘sh joy belgisida ajratish:
import re
txt = "The rain in Spain"
x = re.split("\s", txt)
print(x)
O‘zingiz sinab ko‘ring »
Sizmaxsplitparametrini belgilash orqali hodisalar sonini boshqarishingiz mumkin:
Misol
Stringni faqat birinchi uchragan joyda ajrating:
import re
txt = "The rain in Spain"
x = re.split("\s", txt, 1)
print(x)
O‘zingiz sinab ko‘ring »
Sub() funksiyasi
sub() funksiyasi mosliklarni siz tanlagan matn bilan almashtiradi:
Misol
Har bir bo‘sh joy belgisini 9 raqami bilan almashtiring:
import re
txt = "The rain in Spain"
x = re.sub("\s", "9", txt)
print(x)
O‘zingiz sinab ko‘ring »
countparametrini belgilash orqali almashtirishlar sonini boshqarishingiz mumkin:
Misol
Birinchi 2 ta holatni almashtiring:
import re
txt = "The rain in Spain"
x = re.sub("\s", "9", txt, 2)
print(x)
O‘zingiz sinab ko‘ring »
Mos obyekt
Mos obyekt - qidiruv va natija haqidagi ma’lumotlarni o‘z ichiga olgan obyekt.
Eslatma: Agar moslik bo‘lmasa, moslik obyekti o‘rnigaNoneqiymati qaytariladi.
Misol
Mos obyektni qaytaradigan qidiruvni bajaring:
import re
txt = "The rain in Spain"
x = re.search("ai", txt)
print(x) #this will print an object
O‘zingiz sinab ko‘ring »
Match obyekti qidiruv va natija haqida ma’lumot olish uchun ishlatiladigan xususiyatlar va usullarga ega:
.span() o‘yinning boshlang‘ich va yakuniy pozitsiyalarini o‘z ichiga olgan kortejni qaytaradi..string funksiyaga o‘tkazilgan stringni qaytaradi .group() stringning mos keladigan qismini qaytaradi
Misol
Birinchi o‘yin sodir bo‘lgan joyni (boshlang‘ich va yakuniy pozitsiyasini) chop eting.
Muntazam ibora "S" bosh harfi bilan boshlangan har qanday so‘zlarni qidiradi:
import re
txt = "The rain in Spain"
x = re.search(r"\bS\w+", txt)
print(x.span())
O‘zingiz sinab ko‘ring »
Misol
Funksiyaga kiritilgan stringni chop eting:
import re
txt = "The rain in Spain"
x = re.search(r"\bS\w+", txt)
print(x.string)
O‘zingiz sinab ko‘ring »
Misol
Stringning moslik topilgan qismini chop eting.
Muntazam ibora "S" bosh harfi bilan boshlangan har qanday so‘zlarni qidiradi:
import re
txt = "The rain in Spain"
x = re.search(r"\bS\w+", txt)
print(x.group())
O‘zingiz sinab ko‘ring »
Eslatma: Agar moslik bo‘lmasa, moslik obyekti o‘rnigaNoneqiymati qaytariladi.
W3Schools Pathfinder
Yutuqlaringizni kuzating – bu bepul!
