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.


ULASHISH

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!