Convertidor gratuït

Regex Tester

Proveu i depureu les expressions regulars a l'instant al vostre navegador. Ressalteu les coincidències, visualitzeu els grups de captura i utilitzeu el mode de substitució: gratuït i privat.

//g
Banderes:

Sobre aquesta eina

Les expressions regulars són un llenguatge específic del domini per fer coincidir patrons en el text. Formen part de la informàtica des de 1968 i ara estan integrats en tots els llenguatges de programació moderns, editors de text i eines de cerca de línia d'ordres. La sintaxi és concisa però propensa a errors: els petits canvis produeixen un comportament de concordança subtilment diferent i les expressions complexes es tornen il·legibles ràpidament. Un provador que mostri coincidències en temps real mentre editeu el patró és la manera més eficaç de desenvolupar i verificar l'expressió regular.

Aquest provador s'executa al vostre navegador mitjançant el motor d'expressió regular de JavaScript (el mateix que utilitza la vostra aplicació si s'executa en un navegador). Els patrons i el text de prova s'actualitzen de manera reactiva: cada canvi a qualsevol torna a executar la coincidència. Els grups de coincidència es ressalten, s'enumeren els grups capturats i s'exposen les marques (insensible a majúscules i minúscules, multilínia, globals) per a la prova.

La sintaxi de regex varia subtilment entre els motors. JavaScript segueix l'especificació ECMAScript; Python, PCRE (utilitzat per PHP i molts altres), Java i Go tenen cadascun els seus propis dialectes amb característiques superposades però no idèntiques. Els patrons desenvolupats aquí utilitzen la sintaxi ECMAScript; La portabilitat entre motors requereix comprovar la documentació de cada objectiu.

Per què utilitzar un verificador d'expressió regular

Els errors de regex són notòriament difícils de depurar després del desplegament. Un patró que sembli raonable pot coincidir més o menys del previst, fallar en casos extrems o tenir un retrocés catastròfic en determinades entrades. La prova de patrons de manera interactiva amb inputs representatius detecta problemes abans de la revisió i producció del codi.

Els patrons també es beneficien de la documentació. Mostrar una expressió regular al costat de l'entrada que hauria de coincidir i l'entrada que no hauria de coincidir fa que la intenció sigui explícita. Els futurs mantenedors (inclou-vos-vos-hi d'aquí a sis mesos) aprecien més els casos de prova documentats que no pas els enginys d'una línia.

Com utilitzar-la

Escriviu un patró, escriviu l'entrada de prova, mireu les coincidències destacades en directe.

  1. Introduïu el vostre patró: Escriviu el patró d'expressió regular al camp del patró. Tant les formes regulars literals (/pattern/flags) com les formes només amb patrons funcionen; les banderes es poden establir mitjançant l'entrada de banderes.
  2. Afegeix una entrada de prova: Enganxeu el text de mostra amb el qual el patró hauria de coincidir (i idealment també el text que no hauria de coincidir). El verificador executa el patró contra l'entrada i destaca les coincidències.
  3. Establir banderes: Senyals comuns: g (global, troba totes les coincidències), i (no distingeix entre majúscules i minúscules), m (inici/final de línia multilínia, ^ i $), s (punt, . coincideix amb noves línies), u (Unicode).
  4. Inspeccionar els resultats: Cada coincidència es ressalta a l'entrada. Els grups de captura apareixen en una llista amb l'índex i el valor de grup. El provador també mostra el recompte de coincidències i qualsevol error de compilació del patró.

Casos d'ús comuns

Detalls tècnics

L'expressió regular de JavaScript segueix l'especificació ECMAScript. Característiques principals: classes de caràcters ([abc], [^abc]), quantificadors (*, +, ?, {n,m}), alternança (|), agrupació ((...)), grups de captura i no captura, lookahead i lookbehind (motors moderns), referències posteriors, grups amb nom, escapes de propietat Unicode (amb bandera u) i el conjunt estàndard de seqüències d'escapada.

Diferències importants amb PCRE i Python: el suport de lookbehind és recent a JavaScript (2018+); els grups amb nom utilitzen la sintaxi (?<nom>...); alguns escapes Unicode requereixen que la bandera u funcioni correctament. Els patrons destinats a l'ús entre llengües s'han de contrastar amb la documentació de cada objectiu.

Rendiment: els motors d'expressions regulars basats en retrocés (la majoria incloent JavaScript) poden tenir un retrocés catastròfic en determinats patrons patològics. Les proves que pengen el provador són un signe que el patró necessita simplificació, normalment evitant quantificadors imbricats i alternança ambigua.

Bones pràctiques

Preguntes freqüents

Quin gust d'expressió regular admet aquesta eina?
Utilitza el motor RegExp integrat de JavaScript, que admet la sintaxi estàndard, com ara lookaheads, lookbehind (en navegadors moderns), grups de captura amb nom i escapes de propietat Unicode.
Puc provar els reemplaçaments d'expressions regulars?
Sí. Canvieu al mode de substitució per introduir un patró de substitució. Podeu utilitzar $1, $2, etc. per a les referències posteriors de grups de captura i $<nom> per als grups amb nom.
Per què la meva expressió regular coincideix de manera diferent aquí que a Python/PHP?
Els diferents llenguatges de programació tenen motors d'expressió regular lleugerament diferents. JavaScript no admet quantificadors possessius ni algunes característiques específiques de PCRE. La sintaxi bàsica (classes de caràcters, quantificadors, grups) és la mateixa en tots els idiomes.
L'eina guarda els meus patrons d'expressió regular?
No. No es guarda ni es transmet res. L'eina s'executa completament al vostre navegador. Podeu marcar o compartir patrons copiant la cadena d'expressió regular.
Com puc fer coincidir un caràcter especial literal?
Escapa'l amb una barra invertida. Per fer coincidir un punt literal: \. Per fer coincidir una barra invertida literal: \\. Dins de les classes de caràcters [...], la majoria de caràcters especials perden el seu significat.
El provador s'executa en un servidor?
No. La compilació i la concordança de patrons es produeixen al vostre navegador mitjançant l'objecte RegExp natiu.
Puc provar patrons per a motors que no siguin JavaScript?
Majoritàriament. Per als patrons simples, els motors principals coincideixen. Per a funcions avançades (mirades enrere, grups atòmics, quantificadors possessius, escapes de propietat Unicode), confirmeu-los amb la documentació del motor de destinació.
Gestiona una entrada molt gran?
Fins a uns quants megabytes funcionen sense problemes. Les entrades més grans poden alentir o penjar el navegador, especialment amb patrons propensos a retrocedir.