CAT Editor

Regex nell'editor web (TMS)

Contenuti tradotti automaticamente dall'inglese con Phrase Language AI.

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

Per usare regex, abilitare Match using regex nelle impostazioni del filtro. Un segno di spunta verde nel campo di input del filtro indica la convalida riuscita di una regex valida.

Le query sono per impostazione predefinita senza distinzione tra maiuscole e minuscole. Abilitare Match case nelle impostazioni del filtro per renderle sensibili alle maiuscole.

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

La query ^abc$ funzionerà come previsto, ovvero corrispondendo all'intero segmento, mentre abc corrisponderà alla sottostringa abc in qualsiasi testo.

Limitazioni

La sostituzione corretta di query parzialmente formattate non è supportata, ad es. la ricerca di "Jméno: $1, Příjmení: $2." nel testo "\\{b\\>First name<}: Bob, \\{biu\\>Last name\\<biu\\}: Dylan." verrà sostituita come “{>Jméno: Bob, Příjmení: Dylan\\<b\\}”

Modelli non supportati

  • Ancoraggio di confine di parola \\b usato per la corrispondenza di parole esatte (funziona nell'editor desktop).

  • \\\\[1-9] - Riferimenti all'indietro (\\1, \\2, ecc.), ad es. (\\w+)\\s+\\1 per la corrispondenza di parole duplicate come “hello hello”

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

  • \\(\\?: - Gruppi non di cattura, ad es. (?:Mr|Mrs|Ms)\\. \\w+, ma i gruppi di cattura (Mr|Mrs|Ms)\\. \\w+ sono supportati e corrispondono a nomi come “Mrs. Smith”, “Mr. Brown”

  • \\(\\?# - Commenti in linea, ad es. \\d\{4\}-(?# year)\\d\{2\}-(?# month)\\d\{2\}(?# day) per la corrispondenza di “2025-06-25”

  • \\(\\?P<[^>]+> - Gruppi di cattura denominati, ad es. (?P<amount>\\d+)\\s?(?P<currency>USD|EUR) per la corrispondenza di “150 USD” e “99 EUR”

Utilizzo

Corrispondenza di base dei modelli

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 carattere (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 consiglia di usare un pattern il più specifico possibile poiché i pattern aperti possono causare problemi di prestazioni nell'editor.

Importante

L'editor ha un limite integrato sulla complessità di un pattern regex. I pattern troppo ampi o che usano pesantemente i caratteri jolly possono fallire come regex non valida. Per evitare questo:

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

  • Riduci al minimo i caratteri jolly. Ogni .+ o .* moltiplica la complessità interna. Preferisci classi di carattere come [A-Z]+ rispetto a .* dove possibile.

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

  • Ancora un lato quando possibile. ^prefix.* è molto meno costoso di .*middle.*.

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

Esempio:

Filtro per indirizzi e-mail:

  • Questo pattern troverà corrispondenza con spazi e tutte le parole circostanti con potenzialmente troppi risultati: .*@.*

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

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

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

Alternanze (operatore OR)

  • cat|dog: Corrisponde a: “cat” e “dog”

  • red|blue|green: Corrisponde a: “red”, “blue”, “green”

Classi di carattere e intervalli

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

  • [A-Z]{2,}: Corrisponde a qualsiasi serie di lettere maiuscole (utile ad es. per trovare corrispondenze con acronimi o Strings scritte in lettere maiuscole)

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

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

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

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

Escape dei 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”

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

  • Per impostazione predefinita, il filtro regex sarà implementato senza distinzione tra maiuscole e minuscole. c.at: Corrisponde a: “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 vengono riconosciuti e l'intera query viene evidenziata, ad es. s(e)g evidenzierà "seg". I gruppi di cattura possono essere utilizzati per la sostituzione, ad es. "Name: Bob" può essere cercato tramite Name: (.*?) e sostituito utilizzando un riferimento all'indietro a Jméno: $1". I riferimenti all'indietro mancanti vengono gestiti correttamente, ovvero la query Name: (.*?) con Sostituisci Jméno: $1, Title: $2 verrà sostituita come Jméno: Bob, Title: $2.

Esempi per Sostituisci riferimento all'indietro:

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

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

  • filtrare (\\d\{4\})-(\\d\{2\})-(\\d\{2\}) e Sostituisci $3/$2/$1 per riformattare la data (ad es. da 2025-06-05 a 05/06/2025)

  • filtrare ID-(\\d{3,}) e Sostituisci Ticket #$1 per estrarre il numero del ticket (ad es. da ID-45321 a Ticket #45321)

  • filtrare (cat|dog) e Sostituisci $1-$1 per Duplica il testo corrispondente (ad es. da cat a cat-cat e da dog a dog-dog)

  • Gruppo opzionale: filtrare Hello(, (\\w+))? e Sostituisci Hi $1 per trasformare i saluti sostituendo "Hello" prima dei nomi o da solo (ad es. da Hello, John a Hi John e da Hello 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.