Il supporto regex nell'editor web è limitato dall'implementazione del motore Lucene Regex.
Per usare regex, abilitare 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 nelle impostazioni del filtro per renderle sensibili alle maiuscole/minuscole.
(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 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
\\busato per trovare corrispondenza con parole esatte (funziona nell'editor desktop). -
\\\\[1-9]- Riferimenti all'indietro (\\1, \\2, ecc.), ad esempio(\\w+)\\s+\\1per trovare corrispondenza con parole duplicate come “hello hello” -
\\(\\?=|\\(\\?!|\\(\\?<=|\\(\\?<!- Lookahead e lookbehind, ad esempiocat(?=\\.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”
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”
? - 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.\\-]+
-
cat|dog: Corrisponde a: "cat" e "dog" -
red|blue|green: Corrisponde a: "red", "blue", "green"
-
[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”
-
\\+[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
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.$2per normalizzare i separatori decimali (ad es. da 5,6 o 35,949 a 5.6 o 35.949) -
filtrare
(\\d+)\\.(\\d+)e Sostituisci$1,$2per 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/$1per riformattare la data (ad es. da 2025-06-05 a 05/06/2025) -
filtrare
ID-(\\d{3,})e SostituisciTicket #$1per estrarre il numero del ticket (ad es. da a ) -
filtrare
(cat|dog)e Sostituisci$1-$1per Duplica il testo corrispondente (ad es. da cat a cat-cat e da dog a dog-dog) -
Gruppo opzionale: filtrare
Hello(, (\\w+))?e SostituisciHi $1per trasformare i saluti sostituendo "Hello" prima dei nomi o da solo (ad es. da a e da a )