CAT Editor

Regex nell'editor web (TMS)

Contenuti tradotti automaticamente dall'inglese con Phrase Language AI.

Il supporto per regex nell'editor web è limitato dall'implementazione del motore Lucene Regex.

Per usare regex, abilita Match using regex nelle impostazioni del filtro. Un segno di spunta verde nel campo di input del filtro indica la validazione riuscita di un regex valido.

Le query sono, per impostazione predefinita, insensibili al maiuscolo. Abilita Match case nelle impostazioni del filtro per renderle sensibili al maiuscolo.

Match words (assicurando di abbinare solo parole complete e non sottostringhe all'interno di parole più lunghe) non è disponibile.

La query ^abc$ funzionerà come previsto, cioè abbinando l'intero segmento, mentre abc abbinerà la sottostringa abc in qualsiasi testo.

Limitazioni

La corretta sostituzione di query parzialmente formattate non è supportata, ad esempio, cercando "Jméno: $1, Příjmení: $2." nel testo "\{b\>Nome<}: Bob, \{biu\>Cognome\<biu\}: Dylan." sarà sostituito come “{>Jméno: Bob, Příjmení: Dylan\<b\}”

Modelli non supportati

  • L'ancora del confine della parola \b è utilizzata per abbinare parole esatte (funziona nell'editor desktop).

  • \\[1-9] - Riferimenti inversi (\1, \2, ecc.), ad esempio (\w+)\s+\1 per abbinare parole duplicate come “hello hello”

  • \(\?=|\(\?!|\(\?&lt;=|\(\?&lt;! - Lookahead e lookbehind, ad esempio cat(?=\.jpg) per abbinare “cat” solo in “cat.jpg”

  • \(\?: - Gruppi non catturanti, ad esempio (?:Mr|Mrs|Ms)\. \w+, ma i gruppi catturanti (Mr|Mrs|Ms)\. \w+ sono supportati e abbinano nomi come “Mrs. Smith”, “Mr. Brown”

  • \(\?# - Commenti in linea, ad esempio \d{4}-(?# anno)\d{2}-(?# mese)\d{2}(?# giorno) per abbinare “2025-06-25”

  • \(\?P<[^>]+> - Gruppi di cattura nominati, ad esempio (?P<amount>\d+)\s?(?P<currency>USD|EUR) per abbinare “150 USD” e “99 EUR”

Utilizzo

Abbinamento di modelli di base

Punto (.) come segnaposto per qualsiasi singolo carattere

  • c.at: Corrispondenze: “chat”, “coat”. Non corrisponde: “cat”, “cheat”

  • wa.ter: Corrispondenze: “waiter”, “waster”. Non corrisponde: “water”

  • s.ip: Corrispondenze: “skip”, “ship”, “slip”. Non corrisponde: “sip”, “strip”

Quantificatori

? - Zero o una occorrenza

  • colou?r: Corrispondenze: “color”, “colour”

  • g?rain: Corrispondenze: “grain”, “rain”

  • books?: Corrispondenze: “book”, “books”

.* - Qualsiasi numero di caratteri (incluso nessuno)

  • h.*y: Corrispondenze: “happy”, “history”, “honey”

  • sa.*d: Corrispondenze: “sad”, “sand”, “satisfied”

  • m.*ing: Corrispondenze: “morning”, “meeting”, “marketing”

.+ - Deve apparire almeno un carattere

  • pa.+er: Corrispondenze: “paper”, “painter”

  • a.+ed: Corrispondenze: “asked”, “accepted”, “allowed”

* - Zero o più occorrenze

  • go*al: Corrispondenze: “goal”, “goooooooal”

+ - Una o più occorrenze

  • no+: Corrispondenze: “no”, “noooooo”

  • $1+: Corrispondenze: “$1”, “$11”, “$111”

Si raccomanda di usare un modello il più specifico possibile poiché i modelli aperti possono causare problemi di prestazioni nell'editor.

Importante

L'editor ha un limite integrato su quanto complesso può essere un modello regex. I modelli che sono troppo generali o utilizzano pesantemente i caratteri jolly possono risultare non validi come regex. Per evitare ciò:

  • Mantieni i modelli brevi e specifici. error-[0-9]{3} va bene; .*a.*b.*c.*d.* non va bene.

  • Minimizza i caratteri jolly. Ogni .+ o .* moltiplica la complessità interna. Preferisci le classi di caratteri come [A-Z]+ rispetto a .* quando possibile.

  • Evita lunghe alternanze con ripetizioni. Un modello come (word1|word2|...|word20){2,} può superare rapidamente il limite. Questo è amplificato quando le alternative includono più parole o punteggiatura, il che aumenta la complessità della regex.

  • Ancorare un lato quando possibile. ^prefix.* è molto più economico di .*middle.*.

Se il modello viene rifiutato, prova a renderlo più mirato: inizia con un prefisso fisso più lungo e restringi da lì. Considera di ridurre il numero di alternative o di gestirle in modelli separati invece di combinare tutto in una regex complessa.

Esempio:

Filtraggio per indirizzi email:

  • Questo modello corrisponderà a spazi e a tutte le parole circostanti con potenzialmente troppi risultati: .*@.*

  • Per limitare i risultati a tutti gli indirizzi email: [\w.+\-]+@[\w.+\-]+

  • Per limitare i risultati solo alle e-mail .com:  [\w.+\-]+@[\w.+\-]\.com

  • Per limitare i risultati a quelli che contengono una cifra negli indirizzi e-mail: [\w.+\-]*\d+[\w.+\-]*@[\w.\-]+

Alternanze (operatore OR)

  • cat|dog: Corrispondenze: “cat” e “dog”

  • red|blue|green: Corrispondenze: “red”, “blue”, “green”

Classi di caratteri e intervalli

  • [A-Z]+: Corrisponde a una o più lettere maiuscole in fila (una sequenza).

  • [A-Z]{2,}: Corrisponde a qualsiasi serie di lettere maiuscole (utile per ad esempio corrispondere acronimi o stringhe scritte in lettere maiuscole)

  • [0-9]{4}: Corrisponde a numeri a quattro cifre, ad esempio. "1999", "2003", "1876" (trovato anche all'interno di una stringa più lunga di quattro cifre; per limitare i risultati, dovrebbe essere utilizzata l'opzione Corrispondenza parole pianificata per il futuro)

  • [A-Za-z0-9]+: Corrisponde a qualsiasi stringa alfanumerica (ciao! → ciao corrisponderebbe, ma ! non fa parte di [A-Za-z0-9]; 100% → solo 100 corrisponderebbe)

  • ([A-Za-z]+\d+|\d+[A-Za-z]+): Corrisponde rigorosamente a una combinazione di cifre e lettere, ad esempio “user123”, “Admin99”, “Win11”, “5g”, “1080p”

  • [0-9]{2,4}-[A-Z]{2,3}: Corrisponde a targhe di immatricolazione, ad esempio. “12-XY”, “9999-ABC”

Escape di caratteri riservati . ? * { } [ ] ( ) " \

  • \+[0-9]{1,2}: Corrisponde a “+40”, “+1”

  • \{version: [0-9]+\}: Corrisponde a “{version: 12}”, “{version: 13}”

  • C:\\[A-Za-z]+: Matches “C:\Users”, C:\Documents, “C:\Desktop”

Filtraggio senza distinzione tra maiuscole e minuscole VS Filtraggio con distinzione tra maiuscole e minuscole

  • Per impostazione predefinita, il filtraggio regex sarà implementato come senza distinzione tra maiuscole e minuscole. c.at: Corrisponde: “chat”, “Chat”, “CHAT” e “coat”, “Coat”, “COAT”

  • Il filtraggio regex può essere combinato con il filtro UI Case sensitive

Gruppi di cattura

I gruppi di cattura regex sono riconosciuti e l'intera query è evidenziata, ad esempio s(e)g evidenzierà "seg". I gruppi di cattura possono essere utilizzati per la sostituzione, ad esempio "Nome: Bob" può essere cercato con Name: (.*?) e sostituito utilizzando un riferimento inverso a Jméno: $1. I riferimenti inversi mancanti vengono gestiti con grazia, cioè la query Name: (.*?) con sostituzione Jméno: $1, Titolo: $2 sarà sostituita come Jméno: Bob, Titolo: $2.

Esempi per il riferimento inverso di sostituzione:

  • filtra (\d+),(\d+) e sostituisci $1.$2 per normalizzare i separatori decimali (ad esempio da 5,6 o 35,949 a 5.6 o 35.949)

  • filtra (\d+)\.(\d+) e sostituisci $1,$2 per normalizzare i separatori decimali (ad esempio da 5.6 o 35.949 a 5,6 o 35,949)

  • filtra (\d{4})-(\d{2})-(\d{2}) e sostituisci $3/$2/$1 per riformattare la data (ad esempio da 2025-06-05 a 05/06/2025)

  • filtra ID-(\d{3,}) e sostituisci Ticket #$1 per estrarre il numero del biglietto (ad esempio da ID-45321 a Ticket #45321)

  • filtra (cat|dog) e sostituisci $1-$1 per duplicare il testo corrispondente (ad esempio da cat a cat-cat e da dog a dog-dog)

  • Gruppo opzionale: filtra Ciao(, (\w+))? e sostituisci Hi $1 per trasformare i saluti sostituendo "Ciao" prima dei nomi o da solo (ad esempio da Ciao, John a Hi John e da Ciao a Hi)

Questo articolo ti è stato utile?

Sorry about that! In what way was it not helpful?

The article didn’t address my problem.
I couldn’t understand the article.
The feature doesn’t do what I need.
Other reason.

Note that feedback is provided anonymously so we aren't able to reply to questions.
If you'd like to ask a question, submit a request to our Support team.
Thank you for your feedback.