Regex (Regular Expression) nima?
Matn bilan ishlashda ko'pincha qidirish, tekshirish yoki belgilarni boshqasiga almashtirish kabi vazifalarni bajarishga to'g'ri keladi. Shu vazifalarni bajarish uchun Regex ishlatiladi.
Quyida eng ko'p tarqalgan Regex vazifalarini keltirib o'tamiz:
- Foydalanuvchidan kiritilgan email manzili to'g'riligini tekshirish.
- Kiritilgan matndan telefon raqamni ajratib olish.
- Matndan faqat narxlar yoki sanalarni topish.
Bunday holatlarda oddiy qidiruv usullari yetarli bo'lmaydi. Chunki matn murakkab bo'lishi, belgilar turlicha yozilishi mumkin. Shu sababli Regex ishlatiladi.
Regex qanday ishlaydi?
Regex matn ichida kerkali moslikni izlash usuli. Matn ichidan qidirish uchun Regex ni maxsus shablonlari bor.
Masalan:
- Matn: "Bugun sana 2025-08-31"
- Regex shablon: \d{4}-\d{2}-\d{2}
- Natijada "2025-08-31" ni topib beradi.
Bu yerda:
- \d — raqam,
- {4} — 4 marta takrorlanishi ya'ni 4 ta raqam,
-
— oddiy minus belgisi,- {2} — 2 marta takrorlanishi ya'ni 2 ta raqam.
Regex asosiy belgilar jadvali
Belgilar | Ma'nosi | Misol | Natija |
---|---|---|---|
. |
Har qanday bitta belgi | c.t |
cat , cut mos keladi |
\d |
Raqam (0–9) | \d\d |
12 , 45 topiladi |
\w |
Harf yoki raqam (word character) | \w+ |
hello123 |
\s |
Bo'sh joy (space, tab) | salom\s* |
salom , salom |
+ |
Bir yoki undan ko'p marta | a+ |
a , aa , aaaa |
* |
Nol yoki ko'p marta | ba* |
b , ba , baa |
? |
Nol yoki 1 marta | colou?r |
color , colour |
{n} |
Aniq marta | \d{4} |
2025 |
{n,m} |
n dan m gacha marta | \d{2,4} |
12 , 2025 |
^ |
Matn boshini bildiradi | ^salom |
faqat boshida salom bo'lsa |
$ |
Matn oxiri | dunyo$ |
oxirida dunyo bo'lsa |
[] |
Belgilar to'plami | [abc] |
a , b , c |
[^] |
Belgilardan tashqari | [^0-9] |
raqamdan boshqa belgilar |
\b |
So'z chegarasi | \bcat\b |
faqat cat so'zi |
() |
Guruhlash | (ab)+ |
ab , abab |
Misollar
Email manzili topish:
- [...] -> foydalanuvchi nomidagi belgilar
- @ -> doim @ bo'lishi kerak
- .[a-z]{2,} oxirida .com, .uz, .org va hokazo
URL (veb-sayt manzili):
- https? -> http yoki https
- :\/\/ -> :// belgisi
- [a-zA-Z0-9.-]+.[a-z]{2,} -> domen (masalan sayt.uz)
- (/[^\s]*)? -> ixtiyoriy manzil (/blog/page)
Go va Regex
Go'da regexp
nomli standart kutubxona bor. U orqali matndan qidirish, tekshirish va almashtirishlarni qilish mumkin.
Misol:
Biror matn regex
shabloniga mos keladimi yoki yo'qligini tekshirish.
Natija: