§

Tsari

Tutoci
§

Kirtanin gwaji

§

Daidaituwa

0 daidaituwa

    Babu daidaituwa tukuna — rubuta tsari da kirtanin gwaji a sama.

    §

    Yanayin maye gurbi

    Bayani mai sauri

    Azuzuwan haruffa

    \d
    Kowane lamba, daidai da [0-9].
    \w
    Kowane halin kalma — haruffa, lambobi, ko layin ƙasa.
    \s
    Kowane farin sarari — sarari, tab, sabon layi, da dai sauransu.

    Matakai

    \b
    Tabbatarwa mara faɗi a kan iyakar kalma.
    ^
    Farkon shigarwa (ko farkon kowane layi lokacin da aka saka flag m).
    $
    Ƙarshen shigarwa (ko ƙarshen kowane layi lokacin da aka saka flag m).

    Masu ƙidaya

    *
    Sifili ko fiye na alamar da ta gabata, mai kwadayi.
    +
    Ɗaya ko fiye na alamar da ta gabata, mai kwadayi.
    ?
    Sifili ko ɗaya na alamar da ta gabata — yana kuma sa mai ƙidaya da ya gabata ya zama mai rashin hanzari.
    {n,m}
    Tsakanin maimaitawa n da m na alamar da ta gabata.

    Ƙungiyoyi

    (...)
    Ƙungiyar ɗaukar — ana fallasa shi a matsayin $1, $2, … a cikin maye gurbi.
    (?:...)
    Ƙungiyar ba mai ɗaukar ba — ƙungiyoyi ba tare da cinye wuri ba.
    (?...)
    Ƙungiyar ɗaukar da ke da suna — ana fallasa shi a matsayin $ a cikin maye gurbi.

    Dubawa a kewaye

    (?=...)
    Dubawa mai kyau zuwa gaba — daidaita ne kawai idan ya biyo bayan …
    (?!...)
    Dubawa mara kyau zuwa gaba — daidaita ne kawai idan BAYA biyo bayan …
    (?<=...)
    Dubawa mai kyau zuwa baya — daidaita ne kawai idan ya biyo bayan …
    (?
    Dubawa mara kyau zuwa baya — daidaita ne kawai idan BA ya biyo bayan …

    Mafitsara

    \\
    Halin backslash na zahiri.
    \.
    Aya ta zahiri — mafitsara kowane metacharacter don daidaita shi a zahiri.

    Masu haɓaka software a Najeriya da faɗin Afirka ta Yamma suna amfani da regex kowace rana — duba tsarin lambar waya ta ƙasa (+234), tabbatar tsarin NIN ko BVN, sarrafa lambar NUBAN ta banki, ko tsaftacewa shigarwar a cikin nau'ukan Django da Laravel. Injin RegExp na JavaScript da ke gudana a cikin mai bincike shi ne injin ɗaya da ke cikin Node.js da PHP. Wannan mai gwada yana gudanar da kowace ƙayyadaddun akan injin mai bincike gaske, tare da dubawa na ƙungiyar ɗaukar, maɓallan flag, da nuna launi — don haka bayyanawa da ka aika da bayyanawa da ka gwada a nan sun kasance iri ɗaya.

    Yaya regex ke aiki a cikin mai bincike?

    Kowane lokacin gudu na JavaScript yana ɗauke da injin bayyanawa ta yau da kullun na asali — new RegExp(pattern, flags) yana tattara tsarinka, sannan hanyoyi kamar String.prototype.match, String.prototype.replace, da RegExp.prototype.exec suna tuƙar shi akan kowane kirtanin shigarwa. Wannan mai gwada yana naɗa injin a cikin UI domin ka iya shirya, gudanar da, da bincika tsare-tsare ba tare da barin mai bincike ba. Babu abin da ka rubuta — tsari, flags, kirtanin gwaji, ko maye gurbi — ake aika ta hanyar cibiyar sadarwa.

    Yaya mai gwada regex ke aiki?

    Tsarin yana ƙananan mataki kaɗan, waɗanda duka ke gudana a bangaren abokin ciniki a kan kowane buga-maballin (ana jinkirta su zuwa 150 ms don rubutu ya kasance mai sauƙi):

    1. An karanta jikin tsarinka daga shigarwa a sama (babu bambaro na / na gaban ko bayan — na ado suke). An tattara ƙwayoyin flag da aka zaɓa zuwa kirtanin flags kamar gi ko gimsuy.
    2. new RegExp(patternBody, flags) yana tattara tsarin. Idan injin ya jefa SyntaxError (misali ƙofar da ba ta rufe ba ko mafitsara mara inganci), ana ba da saƙon a sama da kirtanin gwaji ana share jerin daidaituwa. Kuskuren tattara shi ne ainihin err.message daga V8 / SpiderMonkey / JavaScriptCore don ya dace da abin da za ka gani a DevTools.
    3. Don jerin daidaituwa, mai gwada koyaushe yana ƙididdigewa tare da flag na duniya ta hanyar kirki — don haka ko da ka kashe g, jerin har yanzu yana nuna kowane daidaituwa. Kiyayen daidaituwar faɗi-sifili na ma'auni (if (m.index === rx.lastIndex) rx.lastIndex++) yana kiyaye madauki daga juyawa akan tsare-tsare da ke daidaita kirtanin fanko. Yanayin Maye gurbi yana girmama saiti na flag ɗinka na gaske don $& ya yi ɗaya da String.prototype.replace.
    4. Tsakanin kowane maimaita mai gwada yana duba performance.now() - start kuma yana soke da zarar 50 ms sun ƙure. Wannan yana kiyaye daga dawowa mai haɗari akan shigarwa kamar (a+)+$ akan dogon gudu na a — tab ɗin za ta kasance rataye. Kiyayen yana aiki mafi kyau: tsarin daidaituwa-guda-ɗaya mai cutarwa har yanzu zai iya cinye lokaci a cikin kiran exec ɗaya. Idan hakan ya faru, sake farawa tab ɗin ka sake rubuta tsarin tare da mai ƙidaya mara hanzari ko irin mai mallaka-mai-atomiki (misali [^x]*x).
    5. An karkata kirtanin gwaji zuwa sassa a kowane kewayo na daidaituwa kuma an naɗa sassa da daidatuwa cikin abubuwan <mark class="rx-match rx-cap-N">, inda N yana zagayawa ta hanyar launi na palette shida don daidatuwan makwabta su zama masu sauƙin bambanta a ɗan kallo. An nuna ƙungiyoyin da aka ƙidaya na kowane daidatuwa (m[1], m[2], …) da ƙungiyoyi masu suna (m.groups) a matsayin layuka masu lakabi a ƙasa; idan aka saka flag d, ana nuna ma'auni na [farko, ƙarshe] na kowane ƙungiya ma.

    Me ya sa amfani da wannan mai gwada regex?

    • Sirri: kowane tsari, kirtanin gwaji, da maye gurbi yana gudana a cikin mai bincike ta amfani da injin RegExp na JavaScript na gida. Babu abin da ke barin tab ɗin — muhimmi lokacin da shigarwa ta zama log na abokin ciniki, tsarin bayanan shaida da suka zubo, ko komai da za ka gwammace ka yi liƙa cikin wurin wasan regex na SaaS.
    • Nau'in gaskiya: mai gwada yana fallasa injin regex daidai da Node.js, Chrome, Safari, Firefox, da kowane mai tabbatar da nau'ika na mai bincike ke gudana. Babu ɗan takarar Perl-flavor don ɓoye bambance-bambancen da ba a lura da su ba — abin da ke aiki a nan yana aiki a cikin koden ka.
    • Debugging na ɗaukar da ƙungiyoyi masu suna: an nuna kowane ƙungiyar da aka ƙidaya ($1, $2, …) da ƙungiyar da ke da suna ($<year>) a kan kowane daidatuwa don ka iya gina mai fassara ka karanta wurare ba tare da yin tsammanin ba. Yanayin Maye gurbi yana ba ka damar haɗa ƙungiyoyi cikin 'yanci — $2-$1 yana musanya manyan wurare biyu, $<name> yana jefa wuri mai suna, da $& yana nuna daidatuwar gaba ɗaya.
    • Kiyayen dawowa mai haɗari: rufin 50 ms a kan ƙididdigewa yana soke tsare-tsare masu cutarwa kamar (a+)+$ kafin su hana tab ɗin. Kana ganin kuskure mai bayanin maimakon mai bincike mai rataye, kuma shafin yana murmurewa nan da nan.

    Waɗanne amfani na gama-gari na mai gwada regex akwai?

    Bayyanawa ta yau da kullun tana bayyana a cikin haɓakawa ta yanar gizo, tsaro, da aiki na bayanai — wannan mai gwada yana niyya mafi gama-gari na amfani:

    • Tabbatar da nau'ika: tsawaita tsarin imel, waya, ko lambar gidan wayar, liƙa shigarwa na samfur a cikin kirtanin gwaji, ka tabbatar kowane shari'ar kyau ya daidaita kuma kowane shari'ar mara kyau bai yi ba kafin ka aika tsarin zuwa lambar samarwa.
    • Tarwa na log: liƙa ɓangare na fitar NGINX, app, ko bincike, rubuta tsari tare da ƙungiyoyi masu suna don sassan da kake kulawa da su ((?<ip>…) (?<path>…)), ka karanta wuraren da aka ɗauka a kan kowane daidatuwa don tabbatar fassararka ta dace.
    • Refactor yin nema-da-maye gurbi: yi amfani da Yanayin Maye gurbi don sake rubuta masu tanadar a cikin yanki — (\w+)\.set(\w+)\($1.$2 = yana canza kiran mai karba zuwa naɗin dukiya, kuma nunin kai tsaye yana nuna sakamakon kafin ka aika shi zuwa codemod.

    Yaya misali na regex ke kama?

    Ka ɗauki tsari (\d{4})-(\d{2})-(\d{2}) tare da flag g, gudana akan kirtanin gwaji release 2025-11-15, prerelease 2026-05-25. Injin yana nemo daidaituwa biyu. Daidatuwar farko ita ce 2025-11-15 tare da ƙungiya 1 = 2025, ƙungiya 2 = 11, ƙungiya 3 = 15. Daidatuwar biyu ita ce 2026-05-25 tare da siffa ƙungiya ɗaya. A Yanayin Maye gurbi, samfurin maye gurbi $3/$2/$1 yana sake rubuta kwanakin biyu zuwa 15/11/2025 da 25/05/2026 — canja-tsari-ɗaya daga ISO-zuwa-DMY da za ka iya tabbatar da shi a hangen nesa kafin saka tsarin cikin rubutun.

    Yi amfani da wannan mai gwada a matsayin hanyar sauri don kowane aiki na regex — gina, debugging, ko sake rubuta tsare-tsare. Komai yana gudana a cikin gida; babu abin da ake loga; injin regex shine ko menene mai bincikeka ke ɗauke da shi, don haka ɗabi'a ta dace da abin da lambar samarwa za ta gani a lokacin gudu.