Comprovador i Validador de Regex en Línia Gratuït - Comprova Patrons Instantàniament
Prova i valida expressions regulars en línia amb ressaltat en temps real. Comprovador de patrons regex gratuït amb validació de sintaxi, resultats de coincidència i funcionalitat de desar. Prova regex ara!
Provador de Patrons Regex
Resultats de Coincidència
Introduïu un patró i un text de prova per veure els resultats
Desar Patró
Resultats de Coincidència
Introduïu un patró i un text de prova per veure els resultats
Patrons Desats
Encara no hi ha patrons desats
Guia de Símbols Regex
.Coincideix amb qualsevol caràcter excepte salt de línia\dCoincideix amb qualsevol dígit (0-9)\DCoincideix amb qualsevol caràcter que no sigui un dígit\wCoincideix amb qualsevol caràcter de paraula (a-z, A-Z, 0-9, _)\WCoincideix amb qualsevol caràcter que no sigui de paraula\sCoincideix amb qualsevol caràcter d'espai en blanc\SCoincideix amb qualsevol caràcter que no sigui d'espai en blanc^Coincideix amb l'inici de línia$Coincideix amb el final de línia*Coincideix amb 0 o més del caràcter anterior+Coincideix amb 1 o més del caràcter anterior?Coincideix amb 0 o 1 del caràcter anterior{n}Coincideix exactament amb n del caràcter anterior{n,}Coincideix amb almenys n del caràcter anterior{n,m}Coincideix entre n i m del caràcter anterior[abc]Coincideix amb qualsevol dels caràcters entre claudàtors[^abc]Coincideix amb qualsevol caràcter que no estigui entre claudàtors(abc)Agrupa múltiples tokens i captura la coincidènciaa|bCoincideix amb a o b\bCoincideix amb una posició de límit de paraulaDocumentació
Què és un comprovador d’expressions regulars
Un comprovador d’expressions regulars és una eina que comprova una expressió regular en un fragment de text i mostra amb què coincideix. Una expressió regular, o regex, és una seqüència curta de caràcters que descriu un patró del text, com ara «tres dígits seguits» o «qualsevol paraula que comenci amb una lletra majúscula». Aquest validador de regex permet escriure un patró i un text de prova i veure immediatament les coincidències ressaltades, sense escriure cap codi.
Les expressions regulars s’utilitzen en molts llenguatges de programació per cercar text, comprovar que l’entrada de l’usuari té el format correcte i extreure fragments concrets d’un bloc de text més gran. La sintaxi és compacta, però és fàcil equivocar-s’hi; per això, provar un patró abans d’utilitzar-lo en un programa ajuda a detectar els errors aviat.
Com provar una expressió regular en línia
- Escriviu un patró. Introduïu la regex al camp del patró. L’eina comprova la sintaxi mentre l’usuari escriu i mostra un missatge d’error si el patró no és vàlid, per exemple si queda obert un claudàtor o un parèntesi.
- Trieu les banderes. Les banderes canvien la manera com s’aplica el patró (vegeu més avall).
- Introduïu el text de prova. Escriviu o enganxeu el text que voleu cercar al quadre de text de prova.
- Llegiu els resultats. Les coincidències es ressalten en el text i l’eina informa de quantes n’ha trobat. Si hi ha text de prova, també indica si el patró coincideix amb tot el text, des del principi fins al final, o només amb una part.
- Deseu un patró. Un patró es pot desar amb una etiqueta breu per reutilitzar-lo més endavant. Els patrons desats es conserven al navegador, no en un servidor, de manera que només apareixen al mateix dispositiu i navegador.
- Copieu els resultats. El text coincident o el mateix patró es pot copiar al porta-retalls amb un sol clic.
Banderes de les regex
Una bandera és una sola lletra que s’afegeix després d’un patró i en modifica el comportament. Aquesta eina admet quatre banderes, soles o combinades:
| Bandera | Nom | Efecte |
|---|---|---|
g | Global | Troba totes les coincidències del text en lloc d’aturar-se a la primera. |
i | Sense distinció entre majúscules i minúscules | Ignora les diferències entre majúscules i minúscules. |
m | Multilínia | Fa que ^ i $ coincideixin amb el principi i el final de cada línia, i no només amb el principi i el final de tot el text. Canvia on es troben les coincidències, però no la comprovació de tot el text descrita més avall. |
s | Punt per a tot | Fa que . també coincideixi amb els caràcters de salt de línia. |
Les banderes es poden combinar, per exemple gi per a global i sense distinció entre majúscules i minúscules, o gms per a global, multilínia i punt per a tot alhora.
Com troba les coincidències l’eina
El cercador sempre busca totes les ocurrències del patró en el text; per això, el recompte de coincidències es comporta com si la bandera global estigués activada, encara que no estigui seleccionada al menú desplegable. Cada coincidència es registra amb la seva posició i longitud; després, el text original es divideix en fragments coincidents i no coincidents perquè les coincidències es puguin ressaltar.
Per comprovar si un patró coincideix amb tot el text, l’eina l’embolcalla en un grup que no captura i l’ancora: ^(?:pattern)$. L’agrupació és important perquè | (alternança) té menys prioritat que les àncores. Sense el grup, un patró com cat|dog ancorat com ^cat|dog$ voldria dir realment «comença amb cat o acaba amb dog», que no és el mateix que «tot el text és cat o dog».
Aquesta comprovació també elimina la bandera multilínia. Amb m activada, ^ i $ coincideixen a cada salt de línia, de manera que la prova ancorada respondria «coincideix alguna línia?» en lloc de «coincideix tot el text?». L’eina elimina m per a aquesta comprovació i conserva i i s, perquè aquestes dues canvien amb què coincideix el patró, no pas on se situen les àncores. Per tant, la resposta sempre es refereix al text complet, inclosos els salts de línia.
Exemple resolt
Patró: \d+ (un dígit o més), bandera: g, text de prova: Room 12 has 5 chairs.
- Coincidències trobades:
12i5, de manera que el recompte de coincidències és 2. - Comprovació de tot el text: el patró no coincideix amb tot el text, perquè el text també conté lletres i espais.
Si el text de prova es canvia per 12345, el mateix patró coincideix amb tota la cadena i la comprovació de tot el text indica que és certa.
Referència de la sintaxi de les regex
Coincidència de caràcters
| Símbol | Significat | Exemple | Coincideix amb |
|---|---|---|---|
. | Qualsevol caràcter excepte un salt de línia | a.c | «abc», «adc», «a1c» |
\d | Qualsevol dígit, de 0 a 9 | \d{3} | "123", "456" |
\D | Qualsevol caràcter que no sigui un dígit | \D+ | «abc», «xyz» |
\w | Qualsevol lletra, dígit o guió baix | \w+ | «abc123», «test_123» |
\W | Qualsevol caràcter que no sigui una lletra, un dígit ni un guió baix | \W+ | "!@#" |
\s | Qualsevol caràcter d’espai en blanc | a\sb | «a b» |
\S | Qualsevol caràcter que no sigui un espai en blanc | \S+ | «abc» |
Àncores de posició
| Símbol | Significat | Exemple | Coincideix amb |
|---|---|---|---|
^ | Principi d’una línia | ^abc | «abc» al principi d’una línia |
$ | Final d’una línia | abc$ | «abc» al final d’una línia |
\b | Un límit de paraula | \bword\b | «word» com a paraula sencera |
Quantificadors
| Símbol | Significat | Exemple | Coincideix amb |
|---|---|---|---|
* | Zero o més ocurrències de l’element anterior | a*b | «b», «ab», «aab» |
+ | Una ocurrència o més de l’element anterior | a+b | «ab», «aab» |
? | Zero o una ocurrència de l’element anterior | colou?r | «color», «colour» |
{n} | Exactament n ocurrències de l’element anterior | a{3} | «aaa» |
{n,} | Com a mínim n ocurrències de l’element anterior | a{2,} | «aa», «aaa» |
{n,m} | Entre n i m ocurrències de l’element anterior | a{2,4} | «aa», «aaa», «aaaa» |
Conjunts i grups de caràcters
| Símbol | Significat | Exemple | Coincideix amb |
|---|---|---|---|
[abc] | Qualsevol dels caràcters indicats entre claudàtors | [aeiou] | qualsevol vocal individual |
[^abc] | Qualsevol caràcter que no aparegui entre claudàtors | [^aeiou] | qualsevol caràcter que no sigui una vocal |
(abc) | Agrupa els caràcters i captura la coincidència | (abc)+ | «abc», «abcabc» |
| a\ | b | Coincideix amb a o b | cat\ |
Cal conèixer dues funcions més. Una asserció anticipada, escrita a(?=b), coincideix amb «a» només quan va seguida de «b», sense incloure «b» en la coincidència. Una asserció retrospectiva, escrita (?<=a)b, coincideix amb «b» només quan apareix just després d’«a».
Exemples habituals de patrons
Aquests patrons es poden enganxar a l’eina per veure com es comporten amb text de mostra.
Només dígits: ^\d+$ coincideix amb una cadena formada únicament per dígits, com ara «48210», i rebutja qualsevol cosa que contingui una lletra o un espai.
Adreça electrònica (comprovació bàsica): ^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$ coincideix amb adreces del format name@domain.tld, com ara «user@example.com». És una comprovació simple, no pas el format complet de les adreces electròniques definit pels estàndards d’Internet, de manera que algunes adreces poc habituals però vàlides no la superaran.
Número de telèfon dels EUA: ^\(?(\d{3})\)?[- ]?(\d{3})[- ]?(\d{4})$ coincideix amb formats com «(123) 456-7890», «123-456-7890» i «1234567890».
Data en format YYYY-MM-DD: ^\d{4}-(0[1-9]|1[0-2])-(0[1-9]|[12][0-9]|3[01])$ comprova que el mes estigui entre 01 i 12 i que el dia estigui entre 01 i 31. No comprova que el dia sigui vàlid per al mes concret, de manera que accepta «2024-02-30», tot i que el febrer mai no té 30 dies.
Preguntes freqüents
Què és una expressió regular? Una expressió regular és una seqüència de caràcters que defineix un patró de cerca. S’utilitza per cercar, fer coincidir i editar text en la majoria de llenguatges de programació i editors de text.
Què fa la bandera global?
Sense la bandera global, una cerca normalment s’atura després de la primera coincidència. Amb la bandera global (g), la cerca continua i informa de totes les coincidències del text. Aquesta eina sempre busca totes les coincidències quan les compta, independentment de la bandera triada.
Com puc fer coincidir un punt literal o un altre caràcter especial?
Poseu-hi una barra invertida al davant. Per exemple, \. coincideix amb un punt literal en lloc de «qualsevol caràcter», que és el que significa . sense escapar.
Quina diferència hi ha entre .* i .*??
.* és voraç i coincideix amb tants caràcters com pot. .*? és mandrós i coincideix amb tan pocs caràcters com pot, sempre que la resta del patró pugui coincidir.
Per què l’eina diu que el text no coincideix completament quan totes les línies coincideixen?
La comprovació de tot el text tracta el text com una sola cadena, inclosos els salts de línia. Un patró com \d+ coincideix per separat amb cada línia de 12 i 34, però les dues línies i el salt de línia que les separa no estan formats només per dígits; per tant, la resposta per a tot el text és negativa. Per fer coincidir text que s’estén per diverses línies, el patró també ha d’incloure els salts de línia, per exemple amb [\s\S]+.
Com puc comprovar que una cadena sencera coincideix amb un patró, i no només una part?
Afegiu ^ al principi i $ al final del patró, per exemple ^[0-9]+$ per a una cadena formada només per dígits.
Aquest comprovador coincideix amb les regles de les regex d’altres llenguatges de programació? Aquesta eina utilitza el motor d’expressions regulars integrat a JavaScript. La major part de la sintaxi bàsica, com ara les classes de caràcters i els quantificadors, és compartida per llenguatges com Python, Java i Perl, però alguns detalls varien; per tant, no es garanteix que un patró que funcioni aquí es comporti de manera idèntica a tot arreu.
Referències
- "Regular expression." Wikipedia, Wikimedia Foundation. https://en.wikipedia.org/wiki/Regular_expression
- MDN Web Docs. "Regular expressions." Mozilla. https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Regular_Expressions
- Friedl, J. E. F. (2006). Mastering Regular Expressions. O’Reilly Media.