§

Namuna

Bayroqlar
§

Sinov qatori

§

Mosliklar

0 moslik

    Hozircha moslik yo‘q — yuqorida namuna va sinov qatorini kiriting.

    §

    Almashtirish rejimi

    Tezkor ma'lumotnoma

    Belgilar sinflari

    \d
    Har qanday raqam, [0-9] ga teng.
    \w
    Har qanday so‘z belgisi — harflar, raqamlar yoki pastki chiziq.
    \s
    Har qanday bo‘sh joy — probel, tab, yangi qator va h.k.

    Lat‘flar

    \b
    So‘z chegarasidagi nol kenglikdagi tasdiq.
    ^
    Kirishning boshi (yoki m bayrog‘i yoqilganda har bir qatorning boshi).
    $
    Kirishning oxiri (yoki m bayrog‘i yoqilganda har bir qatorning oxiri).

    Miqdorchilar

    *
    Oldingi tokenning nol yoki undan ko‘pi, ochko‘z.
    +
    Oldingi tokenning bir yoki undan ko‘pi, ochko‘z.
    ?
    Oldingi tokenning nol yoki bittasi — shuningdek, oldingi miqdorchini dangasa qiladi.
    {n,m}
    Oldingi tokenning n va m oralig‘idagi takrorlari.

    Guruhlar

    (...)
    Qamrov guruhi — almashtirishlarda $1, $2, … sifatida taqdim etiladi.
    (?:...)
    Qamramaydigan guruh — slotni egallamasdan guruhlaydi.
    (?...)
    Nomlangan qamrov guruhi — almashtirishlarda $ sifatida taqdim etiladi.

    Lookaround

    (?=...)
    Ijobiy lookahead — faqat keyin … kelgan taqdirda mos keladi
    (?!...)
    Salbiy lookahead — faqat keyin … kelMAGAN taqdirda mos keladi
    (?<=...)
    Ijobiy lookbehind — faqat oldin … kelgan taqdirda mos keladi
    (?
    Salbiy lookbehind — faqat oldin … kelMAGAN taqdirda mos keladi

    Qochishlar

    \\
    So‘zma-so‘z teskari chiziq belgisi.
    \.
    So‘zma-so‘z nuqta — har qanday meta-belgini so‘zma-so‘z moslashtirish uchun undan qoching.

    Muntazam ifodalar O‘zbekistondagi backend va data-engineering ish-oqimining ajralmas qismi: Soliq qo‘mitasi tomondan beriladigan STIR raqamining 9 yoki 14 raqamli formatini Regex bilan tekshirish, Tashkent kodlash uchun +998 bilan boshlanadigan telefon raqamlarini ushlab olish, HUMO va UZCARD BIN diapazonlarini bank kartasi maydonida ajratish — bularning hammasi kunlik vazifa. Olcha.uz va Uzum Market’ning SKU formatlarini tahrirlash, Apache Combined log faylida AWS Athena queri davomida Yandex.Cloud’dan kelayotgan IP’larni filterlash, React formada e-Imzo serial raqamining qatorini sanitarlash — IT Park rezidentlari shu kabi vazifalar bilan duch keladi. Mahalliy Click hook’laring imzo prefiksini ushlash uchun ham regex foydalaniladi. Bu vosita brauzerning native RegExp dvigatelida ishlaydi va production bilan bit-identik javob beradi.

    Regex brauzeringizda qanday ishlaydi?

    Har bir JavaScript ish vaqti yerli muntazam ifoda dvigatelini birga olib keladi — new RegExp(pattern, flags) namunangizni kompilyatsiya qiladi, so‘ngra String.prototype.match, String.prototype.replace va RegExp.prototype.exec kabi metodlar uni har qanday kirish qatoriga qarshi ishga tushiradi. Ushbu test vositasi o‘sha dvigatelni interfeysga o‘rab oladi, shuning uchun namunalarni brauzerni tark etmasdan tahrirlashingiz, ishga tushirishingiz va tekshirishingiz mumkin. Yozgan narsangizning hech biri — namuna, bayroqlar, sinov qatori yoki almashtirish — tarmoq orqali yuborilmaydi.

    Regex test vositasi qanday ishlaydi?

    Quvur liniya bir nechta qisqa qadamlardan iborat va barcha qadamlar har bir tugma bosilganda mijoz tomonida ishlaydi (yozish ravon qolishi uchun 150 ms debouncing bilan):

    1. Namunangizning tanasi yuqoridagi maydondan o‘qiladi (boshlang‘ich yoki yakuniy / ajratuvchilari yo‘q — ular bezakli). Tanlangan bayroq tugmalari gi yoki gimsuy kabi bayroq qatorida birlashtiriladi.
    2. new RegExp(patternBody, flags) namunani kompilyatsiya qiladi. Agar dvigatel SyntaxError tashlasa (masalan, juftlanmagan qavs yoki noto‘g‘ri qochish), xabar sinov qatori ustida ko‘rsatiladi va moslik ro‘yxati tozalanadi. Kompilyatsiya xatosi V8 / SpiderMonkey / JavaScriptCore'dan keladigan haqiqiy err.message bo‘lib, DevTools’da ko‘radiganingizga to‘g‘ri keladi.
    3. Moslik ro‘yxati uchun vosita har doim sintetik global bayroq bilan ro‘yxatga oladi — shuning uchun g ni o‘chirsangiz ham ro‘yxat har bir moslikni ko‘rsatadi. Nol kenglikdagi mosliklarga qarshi standart himoya (if (m.index === rx.lastIndex) rx.lastIndex++) bo‘sh qatorga mos keladigan namunalarda tsikl aylanib qolmasligini ta'minlaydi. Almashtirish rejimi sizning haqiqiy bayroqlar to‘plamingizni hisobga oladi, shuning uchun $& String.prototype.replace bilan bir xil ishlaydi.
    4. Har bir iteratsiya orasida vosita performance.now() - start ni tekshiradi va 50 ms o‘tganidan keyin bekor qiladi. Bu uzun a ketma-ketligiga qarshi (a+)+$ kabi kirishlarda halokatli orqaga qaytishdan himoya qiladi — aks holda yorliq qotib qolardi. Himoya mumkin qadar yaxshi ishlaydi: bitta moslik beradigan patologik namuna baribir bitta exec chaqiruvi ichida vaqtni sarflashi mumkin. Agar shunday bo‘lsa, yorliqni yangilang va namunani ochko‘z bo‘lmagan miqdorchi yoki atomik egalik uslubi (masalan, [^x]*x) bilan qayta yozing.
    5. Sinov qatori har bir moslik oralig‘ida segmentlarga bo‘linadi va mos kelgan segmentlar <mark class="rx-match rx-cap-N"> elementlariga o‘raladi; bu yerda N oltita palitra rangini aylanib chiqadi, shunda qo‘shni mosliklar bir qarashda osongina farqlanadi. Har bir moslikning raqamlangan guruhlari (m[1], m[2], …) va nomlangan guruhlari (m.groups) pastda yorliqli qatorlar sifatida chiqariladi; agar d bayrog‘i yoqilgan bo‘lsa, har bir guruh uchun [start, end] indekslari ham ko‘rsatiladi.

    Nega aynan shu regex test vositasi?

    • Maxfiylik: har bir namuna, sinov qatori va almashtirish brauzeringizda o‘rnatilgan JavaScript RegExp dvigateli bilan ishlaydi. Hech narsa yorliqni tark etmaydi — kirish mijoz jurnali, sizib chiqqan hisob ma’lumoti namunasi yoki SaaS regex maydonchasiga joylashtirmaslik kerak bo‘lgan boshqa narsa bo‘lganda bu juda muhim.
    • Halol ta’m: vosita aniq Node.js, Chrome, Safari, Firefox va brauzerga asoslangan har qanday forma validatori ishlatadigan regex dvigatelini ochib beradi. Nozik farqlarni yashiradigan Perl-ta'mga tarjima qatlami yo‘q — bu yerda ishlagan narsa kodingizda ham ishlaydi.
    • Qamrov va nomlangan guruhni nosozlikdan tuzatish: har bir raqamli guruh ($1, $2, …) va nomlangan guruh ($<year>) har bir moslik uchun ko‘rsatiladi, shuning uchun parser qurishingiz va slotlarni taxmin qilmasdan o‘qishingiz mumkin. Almashtirish rejimi guruhlarni erkin aralashtirishga imkon beradi — $2-$1 dastlabki ikkita slotni almashtiradi, $<name> nomlangan slotni qo‘shadi va $& butun moslikni qaytaradi.
    • Halokatli orqaga qaytishdan himoya: ro‘yxatga olish ustidagi 50 ms cheklov (a+)+$ kabi patologik namunalarni yorliqni qotirishdan oldin bekor qiladi. Qotib qolgan brauzer o‘rniga tushuntiruvchi xato ko‘rasiz va sahifa darhol tiklanadi.

    Regex test vositasining keng tarqalgan qo‘llanmalari qanday?

    Muntazam ifodalar veb dasturlash, xavfsizlik va ma'lumotlar bilan ishlashda paydo bo‘ladi — bu vosita eng keng tarqalgan foydalanish stsenariylarini nishonga oladi:

    • Forma tekshiruvi: e-pochta, telefon yoki pochta indeksi namunasini prototiplang, sinov qatoriga namuna kirishlarini joylashtiring va namunani ishlab chiqarish kodiga yuborishdan oldin har bir ijobiy holatning mos kelishi va har bir salbiy holatning mos kelmasligini tasdiqlang.
    • Jurnal skraping: NGINX, ilova yoki audit jurnali chiqishining bir qismini joylashtiring, qiziqqan qismlaringiz uchun nomlangan guruhlar bilan namuna yozing ((?<ip>…) (?<path>…)) va parseringizning to‘g‘riligini tasdiqlash uchun har moslikning qamrab olingan slotlarini o‘qing.
    • Refaktoringi uchun topish-va-almashtirish: snipetdagi identifikatorlarni qayta yozish uchun Almashtirish rejimidan foydalaning — (\w+)\.set(\w+)\($1.$2 = setter chaqiruvlarini xususiyat tayinlashlariga aylantiradi va jonli oldindan ko‘rish, kodemodga kiritishdan oldin natijani ko‘rsatadi.

    Regex namunasi qanday ko‘rinadi?

    Quyidagi namunani oling: (\d{4})-(\d{2})-(\d{2}) g bayrog‘i bilan, release 2025-11-15, prerelease 2026-05-25 sinov qatoriga qarshi ishga tushirilgan. Dvigatel ikkita moslik topadi. Birinchi moslik 2025-11-15 — guruh 1 = 2025, guruh 2 = 11, guruh 3 = 15. Ikkinchi moslik 2026-05-25 — xuddi shu guruh shakli bilan. Almashtirish rejimida $3/$2/$1 almashtirish shabloni ikkala sanani 15/11/2025 va 25/05/2026 ga qayta yozadi — bitta namuna bilan ISO dan DMY ga konvertatsiya, uni skriptga ulashdan oldin vizual tarzda tekshirishingiz mumkin.

    Ushbu test vositasidan har qanday regex ishi — namunalarni qurish, nosozliklarni tuzatish yoki qayta yozish — uchun tez yo‘l sifatida foydalaning. Hammasi mahalliy ravishda ishlaydi; hech narsa qayd etilmaydi; regex dvigateli — bu brauzeringiz olib keladigan dvigatel, shuning uchun xatti-harakatlar ishlab chiqarish kodi ish vaqtida ko‘radigan narsaga mos keladi.