Le espressioni regolari sono caratteri che vengono combinati secondo un modello specifico (sintassi) e che possono essere utilizzati per ricerche avanzate di tipo trova e/o sostituisci. L'implementazione delle espressioni regolari utilizza la sintassi del modello di espressione regolare ECMAScript.
Osservare la barra di stato per verificare se le espressioni regolari non sono valide o se la stringa di ricerca non produce corrispondenze. Utilizzare il menu espressioni regolari per creare modelli validi.
![]() |
Attivare l'icona Usa espressioni regolari nella finestra di dialogo Trova |
I caratteri speciali di modello sono caratteri (o sequenze di caratteri) che hanno un significato speciale quando appaiono in un'espressione regolare, sia per rappresentare un carattere difficile da esprimere in una stringa, sia per rappresentare una categoria di caratteri. Ciascuno di questi caratteri speciali di modello viene confrontato nella sequenza di destinazione con un singolo carattere (a meno che un quantificatore non specifichi diversamente).
Sintassi |
Descrizione |
Esempio |
---|---|---|
\w |
Qualsiasi carattere alfanumerico o carattere di sottolineatura |
|
\W |
Qualsiasi carattere che non sia un carattere alfanumerico o un carattere di sottolineatura |
|
\d |
Qualsiasi carattere numerico |
|
\D |
Qualsiasi carattere che non sia un carattere numerico |
|
\s |
Qualsiasi carattere di spazio, carattere di tabulazione o carattere di fine della riga (CR)(LF) |
|
\S |
Qualsiasi carattere che non sia un carattere di spazio, un carattere di tabulazione o un carattere di fine della riga (CR)(LF) |
|
\t |
Tabulatore |
|
\r\n |
Caratteri di fine della riga Nell'editor ST, le righe finiscono con "\r\n" (un ritorno a capo seguito da una nuova riga). Questi caratteri non sono visibili ma sono presenti nell'editor ST e possono essere cercati. Vedere opzione: Visualizza fine riga -> |
|
|
Qualsiasi carattere singolo comprendente caratteri di spazio, caratteri di tabulazione e caratteri di linea(CR)(LF) |
|
\ |
I seguenti caratteri speciali utilizzati nelle espressioni regolari devono essere preceduti da caratteri di escape con il simbolo \ (barra rovesciata) se si desidera cercarli come testo: ^ $ \ . * + ? ( ) [ ] { } | Non sono ammessi caratteri di escape che formano una delle sequenze di caratteri speciali sopra elencate. |
|
[classe] |
Il carattere di destinazione fa parte della classe di caratteri (vedere le classi di caratteri qui sotto) |
|
[^classe] |
Il carattere di destinazione non fa parte della classe di caratteri (vedere le classi di caratteri qui sotto). |
|
I quantificatori seguono un carattere o un carattere speciale di modello. Possono modificare il numero di volte in cui un carattere viene ripetuto nella corrispondenza:
Quantificatore |
Numero di corrispondenze |
Esempio |
---|---|---|
+ |
1 o più |
|
* |
0 o più |
|
? |
0 o 1 |
|
{int} |
Esattamente il numero definito da int |
|
{int,} |
Il numero definito da int o più |
|
{min,max} |
Il numero tra min (minimo) e max (massimo) |
|
Per default, tutti questi quantificatori sono greedy (ovvero prendono tutti i caratteri necessari per soddisfare la condizione il più possibile). Questo comportamento può essere modificato in non greedy (cioè prendere il minor numero possibile di caratteri che soddisfano la condizione) aggiungendo un punto interrogativo (?) dopo il quantificatore.
Quantificatore |
Numero di corrispondenze |
Esempio |
---|---|---|
+? |
1 o più caratteri, ricerca non greedy |
Modello di ricerca: Testo esempio: sVar1 := 'abc'; sVar2 := 'ABC'; sVar3 := ''; Risultato di ricerca: 'abc' e 'ABC' Viene trovato il minor numero possibile di caratteri tra la prima virgoletta singola e la virgoletta singola successiva. |
+ |
1 o più caratteri, ricerca greedy |
Modello di ricerca: Testo esempio: sVar1 := 'abc'; sVar2 := 'ABC'; sVar3 := ''; Risultato di ricerca: 'abc'; sVar2 := 'ABC'; sVar3 := '' Viene trovato il maggior numero possibile di caratteri tra la prima virgoletta singola e l'ultima virgoletta singola. |
*? |
0 o più caratteri, ricerca non greedy |
Modello di ricerca: Testo esempio: sVar1 := 'abc'; sVar2 := 'ABC'; sVar3 := ''; Risultato di ricerca: 'abc' e 'ABC' e '' |
* |
0 o più caratteri, ricerca greedy |
Modello di ricerca: Testo esempio: sVar1 := 'abc'; sVar2 := 'ABC'; sVar3 := ''; Risultato di ricerca: 'abc'; sVar2 := 'ABC'; sVar3 := '' |
I gruppi permettono di applicare i quantificatori a una sequenza di caratteri (invece che a un singolo carattere).
Gruppo di caratteri |
Descrizione |
Esempio |
---|---|---|
(sottoespressione) |
Cattura i caratteri che rappresentano la sottoespressione nella sequenza obiettivo e li memorizza come un submatch. Ogni submatch è numerato secondo l'ordine di comparizione della parentesi di apertura (il primo submatch è numero di backreference 1, il secondo è numero di backreference 2 e così via...). Il numero di backreference può essere riutilizzato nel campo della ricerca o della sostituzione. |
(\d) è la sottoespressione della prima cifra trovata che crea il primo backreference (N=1). Questo backreference viene utilizzato con \1 per identificare lo stesso contenuto trovato nel backreference. |
(?:sottoespressione) |
Definisce un gruppo non di cattura |
In questo caso ci si riferisce con |
\number |
Definisce un backreference che consente a una sottoespressione che ha già una corrispondenza precedente di essere identificata successivamente nella stessa espressione regolare. |
Esempio 1: Modello di ricerca: Spiegazione del modello di ricerca:
|
I backreference possono essere utilizzati anche nella stringa di sostituzione. |
Esempio 2: Modello di ricerca: Modello di sostituzione: Il risultato con backreference è, ad es., 3: iCount3 viene sostituito da iValue3 |
Le asserzioni specificano una posizione nella stringa in cui deve verificarsi una corrispondenza. Quando si utilizza un'asserzione nell'espressione di ricerca, il motore dell'espressione regolare non avanza attraverso la sequenza di destinazione né consuma caratteri, ma cerca una corrispondenza solo nella posizione specificata.
Gruppo di caratteri |
Descrizione |
Esempio |
---|---|---|
\b |
Limite di parola |
|
\B |
Non un limite di parola |
|
^ |
Inizio della riga |
Tip Premendo il tasto dell'accento circonflesso <^> seguito da una vocale, ad esempio a, e, i, o, il simbolo verrà interpretato come un accento circonflesso, ovvero â, ê, î, ô, û. Per evitarlo, premere <^> seguito da uno spazio. |
$ |
Fine della riga |
|
(?=sottoespressione) |
Lookahead positivo I caratteri che seguono l'asserzione devono corrispondere alla sottoespressione, ma non viene consumato alcun carattere. |
|
(?!sottoespressione) |
Lookahead negativo I caratteri che seguono l'asserzione non devono corrispondere alla sottoespressione, ma non viene consumato alcun carattere. |
|
Un modello può includere diverse alternative:
Carattere |
Descrizione |
Esempio |
---|---|---|
| |
Separatore che separa due modelli o sottoespressioni alternativi. |
|
Per utilizzare più modelli alternativi in un'espressione regolare, separarli con l'operatore separatore (|): L'espressione regolare corrisponde se una qualsiasi delle alternative corrisponde e non appena una corrisponde.
Anche le sottoespressioni (nei gruppi o nelle asserzioni) possono usare l'operatore di separazione per separare le diverse alternative.
Una classe di caratteri definisce un insieme di caratteri racchiusi tra parentesi quadre [ ].
L'oggetto espressione regolare tenta di far corrispondere l'intera classe di caratteri a un singolo carattere della sequenza di destinazione (a meno che un quantificatore non specifichi diversamente).
La classe di caratteri può contenere qualsiasi combinazione di:
Tipo |
Descrizione |
Esempio |
---|---|---|
Singoli caratteri |
Qualsiasi carattere specificato è considerato parte della classe (tranne i caratteri speciali - (trattino), [ (parentesi quadra sinistra) e ] (parentesi quadra destra). All'interno di una classe di caratteri possono essere utilizzati anche tutti i caratteri speciali di modello come \t, \d, ecc. |
|
Intervallo |
Per specificare un intervallo, inserire il - (trattino) tra due caratteri validi. |
|
Caratteri di escape |
I caratteri -]\^ hanno un significato speciale nelle definizioni della classe di caratteri. Per trattare questi caratteri come caratteri normali, aggiungere una barra rovesciata prima dei caratteri per eliminare il loro significato speciale. |
|