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/minuscole.

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

La query ^abc$ funzionerà come previsto, ovvero trovando corrispondenza con l'intero segmento, mentre abc troverà corrispondenza con la sottostringa abc in qualsiasi testo.

Limitazioni

La sostituzione corretta di query parzialmente formattate non è supportata, ad esempio 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

  • Ancora di confine di parola \\b usato per trovare corrispondenza con parole esatte (funziona nell'editor desktop).

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

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

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

  • \\(\\?# - Commenti in linea, ad esempio \\d\{4\}-(?# year)\\d\{2\}-(?# month)\\d\{2\}(?# day) per trovare corrispondenza con “2025-06-25”

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

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 raccomanda 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 fanno un uso intensivo di caratteri jolly potrebbero non riuscire come regex non valida. Per evitare ciò:

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

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

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

  • Ancorare un lato ove possibile. ^prefix.* è molto meno costoso di .*middle.*.

Se il pattern viene rifiutato, provare a renderlo più mirato: iniziare con un prefisso fisso più lungo e restringere il campo da lì. Considerare di ridurre il numero di alternative o di gestirle in pattern separati invece di combinare tutto in una 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 ai soli 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 la corrispondenza di 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 utilizzare l'opzione Parole di corrispondenza 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 che distingue tra maiuscole e minuscole VS filtro che non distingue tra maiuscole e minuscole

  • Per impostazione predefinita, il filtro regex verrà implementato senza distinzione tra maiuscole e minuscole. c.at: Corrisponde a: "chat", "Chat", "CHAT" e "coat", "Coat", "COAT"

  • La filtrare regex può essere combinata con il filtrare 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 backreference a Jméno: $1". I backreference 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 backreference:

  • 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.