Tester regex
Verifichi un pattern esattamente come lo eseguirà il browser: hello in hello world dà una corrispondenza alla posizione 0, con i gruppi numerati e con nome. Passi alla sostituzione per vedere il risultato prima di toccare dati reali. Gratis nel suo browser.
- Gratis
- Funziona nel suo browser
- Senza registrazione
- I suoi dati restano sul dispositivo
Esegui gratis nel browser
Esempio risolto
- Schema
- hello
- Testo
- hello world
- Flag
- Quantità
- 1
Serve un tester regex ECMAScript affidabile per pattern, catture e sostituzioni? Questo strumento usa lo stesso motore del browser: flag g, i, m, s, u e y, risultati di match con gruppi numerati e con nome, e modelli di replace con $$, $&, $n e $<name>.
Cercare: ogni corrispondenza con posizione e gruppi
In modalità ricerca ogni corrispondenza compare con il testo trovato, la posizione in cui inizia, contata come nelle stringhe JavaScript, i gruppi numerati nell'ordine di apertura e i gruppi con nome quando il pattern li dichiara. Senza il flag g ottiene al massimo una corrispondenza; con g il motore avanza tra le corrispondenze senza sovrapposizioni. Le corrispondenze vuote vengono superate in sicurezza, così un pattern non gira mai all'infinito. Con il flag u il punto e le classi di caratteri trattano un'emoji come un solo carattere e non come due unità.
Sostituire: il modello di sostituzione
In modalità sostituzione vale la tabella standard di JavaScript: $$ diventa un dollaro letterale, $& inserisce l'intera corrispondenza, un dollaro seguito dal numero di un gruppo inserisce quel gruppo, fino al 99, e $<name> inserisce un gruppo con nome. Se nulla corrisponde, il risultato è il testo originale invariato e il conteggio resta a zero. Il conteggio è lo stesso che darebbe la modalità ricerca con lo stesso pattern e lo stesso testo, così sa quante sostituzioni avverranno prima di applicarle.
Modalità match e gruppi di cattura
In modalità match la risposta elenca ogni risultato con il match completo, l’indice UTF-16 di inizio, i gruppi numerati e quelli con nome opzionali. Senza flag global ottieni al massimo un match; con g scorri match non sovrapposti; sticky y deve combaciare all’indice corrente e non salta gli spazi.
Modelli di replace
Senza match il risultato è il testo originale e count è zero. Usa lo stesso pattern e le stesse flag che incoleresti in un editor per allineare client e server.
Flag, pattern non validi e limiti
Si accettano solo g, i, m, s, u e y, senza duplicati. Con u il punto opera sui code point; senza u un’emoji può occupare due unità UTF-16.
Casi d'uso
Eseguire il debug prima del rilascio
Incolla log o input di form e conferma gruppi e indici prima di portare la regex in produzione.
Insegnare e documentare la regex
Mostra match e replace con le stesse regole ECMAScript usate in JavaScript.
Casi limite sticky e global
Ispeziona come y e g interagiscono con spazi e match vuoti senza indovinare le stranezze del browser.
Domande frequenti
Il tester regex online è gratuito?
Sì. Lo strumento nel browser gira in locale senza costi.
Quale flavor di regex viene usato?
RegExp ECMAScript, lo stesso motore di browser moderni e Node. Non è PCRE né Python re.
Perché ottengo una sola corrispondenza?
Senza il flag g la ricerca si ferma alla prima corrispondenza, come una ricerca semplice in JavaScript. Con g il tester scorre tutte le corrispondenze del testo, senza sovrapposizioni.
Come riutilizzo un gruppo catturato nella sostituzione?
Usi $& per la corrispondenza intera, il simbolo del dollaro seguito dal numero del gruppo per un gruppo numerato e $<name> per un gruppo con nome. Scriva $$ quando le serve un dollaro letterale.
Perché il flag y si ferma dopo la prima parola?
Con y la corrispondenza deve iniziare esattamente dove è finita la precedente e non può saltare spazi o altri caratteri. Per questo gy su parole separate da spazi spesso restituisce solo la prima.
Strumenti correlati
Per sviluppatori — accesso via API
Tutto quello che vedi in questa pagina è disponibile anche via API. Questa sezione è per i team che vogliono integrarlo nei propri sistemi; chi non ne ha bisogno può semplicemente usare lo strumento qui sopra.
Endpoint
Autenticazione con Bearer token: un POST mette in coda l'attività e il risultato arriva via webhook o link firmato.
Chiamala dal tuo stack
curl -X POST https://api.kit.forhosting.com/dev/regex-tester \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"pattern":"\\w+","text":"hello world"}'const res = await fetch("https://api.kit.forhosting.com/dev/regex-tester", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"pattern": "\\w+",
"text": "hello world"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/dev/regex-tester",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"pattern": "\\w+",
"text": "hello world"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/dev/regex-tester", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"pattern":"\\\\w+","text":"hello world"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"pattern":"\\w+","text":"hello world"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/dev/regex-tester", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Esempio di richiesta
{
"pattern": "\\w+",
"text": "hello world"
}Esempio di risposta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "dev.regex_tester",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}L'API è asincrona: ricevi subito un task_id e puoi fare polling fino a 1 richiesta al secondo.
Prezzi
Prezzo pubblicato, senza token né crediti. Se l'attività fallisce, non paghi.
Limiti
max_pattern_chars | 1000 |
max_text_chars | 100000 |
max_matches | 10000 |
Errori
| HTTP | Codice | Significato |
|---|---|---|
401 | unauthorized | Chiave API mancante o non valida: controlla l'header Authorization. |
402 | insufficient_balance | Credito esaurito: ricarica per continuare a eseguire attività. |
404 | unknown_type | Tipo di attività sconosciuto: controlla il campo type della richiesta. |
429 | rate_limited | Troppe richieste in poco tempo: rallenta e riprova tra qualche secondo. |
Note tecniche
Modalità match e gruppi di cattura
Un gruppo opzionale che non partecipa torna come null JSON così gli slot restano stabili per gli script.
Modelli di replace
La modalità replace usa la tabella ECMAScript: $$ diventa un dollaro letterale, $& è il match completo, $1–$99 sono catture numerate se esistono e $<name> inserisce una cattura con nome.
Flag, pattern non validi e limiti
Un pattern non valido non lancia mai un’eccezione grezza del motore: ricevi invalid_input tipizzato con un messaggio chiaro. I limiti di lunghezza proteggono la scheda: pattern fino a 1000 caratteri, testo fino a 100000 e al massimo 10000 match per chiamata.
Casi di integrazione
Anteprima di sostituzioni
Prova i modelli su un campione breve e poi chiama l’API con lo stesso contratto da una pipeline.
Domande tecniche
Quali flag sono supportate?
g, i, m, s, u e y. Altre flag o duplicati restituiscono invalid_input.
Come vengono restituiti i gruppi opzionali?
Come null nell’array groups (e in named se applicabile), mai omessi né undefined in JSON.
Cosa succede se il pattern non è valido?
Ricevi invalid_input con un messaggio che inizia con Regex inválida, non un SyntaxError non tipizzato.
Quali sono i limiti di dimensione?
Pattern ≤ 1000 caratteri, testo ≤ 100000 caratteri e al massimo 10000 match per richiesta.