Libreng Converter

Regex Tester

Subukan at i-debug ang mga regular na expression kaagad sa iyong browser. I-highlight ang mga tugma, tingnan ang mga grupo ng pagkuha, at gamitin ang replace mode — libre at pribado.

//g
Mga flag:

Tungkol sa tool na ito

Ang mga regular na expression ay isang wikang tukoy sa domain para sa pagtutugma ng mga pattern sa text. Ang mga ito ay bahagi ng computing mula noong 1968 at ngayon ay binuo sa bawat modernong programming language, text editor, at command-line na tool sa paghahanap. Ang syntax ay maikli ngunit madaling kapitan ng error: ang maliliit na pagbabago ay gumagawa ng bahagyang magkakaibang pag-uugali ng pagtutugma, at ang mga kumplikadong expression ay nagiging hindi nababasa nang mabilis. Ang isang tester na nagpapakita ng mga tugma sa real time habang ine-edit mo ang pattern ay ang pinakamabisang paraan upang bumuo at mag-verify ng regex.

Ang tester na ito ay tumatakbo sa iyong browser gamit ang JavaScript regex engine (ang parehong ginagamit ng iyong application kung ito ay tumatakbo sa isang browser). Ang mga pattern at pagsubok na pag-update ng text ay reaktibo: bawat pagbabago sa alinman sa muling pagpapatakbo ng tugma. Naka-highlight ang mga pangkat ng tugma, nakalista ang mga nakuhang grupo, at naka-expose ang mga flag (case-insensitive, multiline, global) para sa pagsubok.

Ang syntax ng regex ay bahagyang nag-iiba sa pagitan ng mga makina. Sinusunod ng JavaScript ang spec ng ECMAScript; Ang Python, PCRE (ginamit ng PHP at marami pang iba), Java, at Go ay may kanya-kanyang diyalekto na may magkakapatong ngunit hindi magkakatulad na mga tampok. Ang mga pattern na binuo dito ay gumagamit ng ECMAScript syntax; Ang cross-engine portability ay nangangailangan ng pagsusuri sa bawat dokumentasyon ng target.

Bakit Gumamit ng Regex Tester

Ang mga regex bug ay kilalang mahirap i-debug pagkatapos ng pag-deploy. Ang isang pattern na mukhang makatwiran ay maaaring tumugma sa higit pa o mas kaunti kaysa sa nilalayon, mabibigo sa mga gilid na kaso, o magkaroon ng sakuna na backtracking sa ilang partikular na input. Ang mga pattern ng pagsubok nang interactive laban sa kinatawan ng input ay nakakakuha ng mga isyu bago ang pagsusuri at paggawa ng code.

Nakikinabang din ang mga pattern sa dokumentasyon. Ang pagpapakita ng regex sa tabi ng input na dapat itong tumugma at ang input na hindi nito dapat tumugma ay ginagawang tahasan ang layunin. Pinahahalagahan ng mga tagapangasiwa sa hinaharap (kabilang ang iyong sarili sa loob ng anim na buwan) ang mga dokumentadong kaso ng pagsubok kaysa sa mga matatalinong one-liner.

Paano gamitin

Mag-type ng pattern, i-type ang test input, tingnan ang mga tugma na naka-highlight nang live.

  1. Ilagay ang iyong pattern: I-type ang regex pattern sa pattern field. Parehong gumagana ang literal na regex (/pattern/flags) at pattern-only form; maaaring itakda ang mga flag sa pamamagitan ng input ng mga flag.
  2. Magdagdag ng input ng pagsubok: I-paste ang sample na text na dapat tumugma ang pattern (at perpektong text din na hindi ito dapat tumugma). Pinapatakbo ng tester ang pattern laban sa input at nagha-highlight ng mga tugma.
  3. Magtakda ng mga flag: Mga karaniwang flag: g (global, hanapin ang lahat ng tugma), i (case-insensitive), m (multiline, ^ at $ match line na nagsisimula/nagtatapos), s (dotall, . tumutugma sa mga bagong linya), u (Unicode).
  4. Suriin ang mga resulta: Ang bawat tugma ay naka-highlight sa input. Lumilitaw ang mga pangkat ng pagkuha sa isang listahan na may index at halaga ng pangkat. Ipinapakita rin ng tester ang bilang ng mga tugma at anumang mga error sa compilation sa pattern.

Mga Pangkaraniwang Paggamit

Mga Detalye ng Teknikal

Sinusunod ng JavaScript regex ang detalye ng ECMAScript. Mga pangunahing feature: mga klase ng character ([abc], [^abc]), mga quantifier (*, +, ?, {n,m}), alternation (|), pagpapangkat ((...)), pagkuha at hindi pagkuha ng mga grupo, lookahead at look behind (modernong engine), backreferences, pinangalanang grupo, Unicode property escapes (na may u flag), at mga set ng standard na set.

Mahahalagang pagkakaiba mula sa PCRE at Python: ang hitsura sa likod ng suporta ay kamakailan lamang sa JavaScript (2018+); ang mga pinangalanang pangkat ay gumagamit ng (?<pangalan>...) syntax; ang ilang Unicode escape ay nangangailangan ng u flag na gumana nang tama. Ang mga pattern na inilaan para sa cross-language na paggamit ay dapat suriin sa bawat dokumentasyon ng target.

Pagganap: ang mga backtracking-based na regex engine (karamihan kasama ang JavaScript) ay maaaring magkaroon ng sakuna na backtracking sa ilang partikular na pathological pattern. Ang mga pagsubok na nakabitin sa tester ay isang senyales na ang pattern ay nangangailangan ng pagpapasimple — karaniwang sa pamamagitan ng pag-iwas sa mga nested quantifier at hindi maliwanag na paghahalili.

Pinakamahusay na Kasanayan

Mga madalas itanong

Aling regex flavor ang sinusuportahan ng tool na ito?
Gumagamit ito ng built-in na RegExp engine ng JavaScript, na sumusuporta sa karaniwang syntax kasama ang lookaheads, lookaheads (sa modernong mga browser), pinangalanang mga grupo ng pagkuha, at Unicode property escapes.
Maaari ko bang subukan ang mga pagpapalit ng regex?
Oo. Lumipat sa Replace mode upang magpasok ng kapalit na pattern. You can use $1, $2, etc. for capture group back-references, and $<name> for named groups.
Bakit naiiba ang tugma ng aking regex dito kaysa sa Python/PHP?
Ang iba't ibang mga programming language ay may bahagyang magkakaibang mga regex engine. Hindi sinusuportahan ng JavaScript ang mga possessive quantifier o ilang feature na partikular sa PCRE. Ang pangunahing syntax (mga klase ng character, quantifier, grupo) ay pareho sa mga wika.
Sine-save ba ng tool ang aking mga regex pattern?
Wala. Walang nai-save o ipinadala. Ang tool ay ganap na tumatakbo sa iyong browser. Maaari kang mag-bookmark o magbahagi ng mga pattern sa pamamagitan ng pagkopya ng regex string.
Paano ko tutugma ang isang literal na espesyal na karakter?
Takasan ito gamit ang isang backslash. Upang tumugma sa isang literal na tuldok: \. Upang tumugma sa isang literal na backslash: \\. Sa loob ng mga klase ng karakter [...], karamihan sa mga espesyal na karakter ay nawawalan ng kahulugan.
Ang tester ba ay tumatakbo sa isang server?
Hindi. Ang pagsasama-sama at pagtutugma ng pattern ay nangyayari sa iyong browser gamit ang native na RegExp object.
Maaari ko bang subukan ang mga pattern para sa mga non-JavaScript engine?
Karamihan. Para sa mga simpleng pattern, sumasang-ayon ang mga pangunahing makina. Para sa mga advanced na feature (lookbehind, atomic group, possessive quantifiers, Unicode property escapes), kumpirmahin laban sa dokumentasyon ng target na engine.
Pinangangasiwaan ba nito ang napakalaking input?
Hanggang sa ilang megabytes ay gumagana nang maayos. Ang mga malalaking input ay maaaring bumagal o mabitin ang browser, lalo na sa mga pattern na madaling ma-backtrack.