Espressioni regolari

Un aggiornamento della sintassi e delle regole per la costruzione di espressioni regolari.

Vedi anche Configurazione di un indice incrementale di un sito web organizzato.

Sintassi delle espressioni regolari

Testo

Qualsiasi carattere singolo

[caratteri]

Classe di caratteri: Uno dei caratteri

[^caratteri]

Classe di caratteri: Nessun carattere

text1|text2

Alternativa: testo1 o testo2

Quantificatori

?

0 o 1 del testo precedente

*

0 o N del testo precedente (N > 1)

+

1 o N del testo precedente (N > 1)

Raggruppamento

(testo)

Raggruppamento di testo, per impostare i bordi di un'alternativa o per restituire i riferimenti quando il nth gruppo viene utilizzato sull'RHS di una RewriteRule con $N)

Ancoraggi

^

Inizio ancoraggio linea.

$

Ancoraggio fine linea.

Fuga

\char

Scappa il carattere particolare. Ad esempio, per specificare i caratteri ".[] ()" e così via.

Regole sulle espressioni regolari

  • Un carattere comune, non uno dei caratteri speciali descritti di seguito, è un'espressione regolare a un carattere che corrisponde a se stessa.

  • Una barra rovesciata () seguita da qualsiasi carattere speciale è un'espressione regolare a un carattere che corrisponde al carattere speciale stesso. I caratteri speciali includono quanto segue:

    • . (punto), * (asterisco), ? (punto interrogativo), + (segno più), [ (parentesi quadra sinistra), | (barra verticale) e \ (barra rovesciata) sono sempre caratteri speciali, tranne quando compaiono tra parentesi quadre.

    • ^ (accento circonflesso) è speciale all'inizio di un'espressione regolare, o quando segue immediatamente la sinistra di una coppia di parentesi quadre.

    • $ (simbolo del dollaro) è speciale alla fine di un'espressione regolare.

    • . (punto) è un'espressione regolare a un carattere che corrisponde a qualsiasi carattere, inclusi i caratteri del set di codici supplementari ad eccezione di new-line.

    • Una stringa non vuota di caratteri racchiusi tra [ ] (parentesi quadre sinistra e destra) è un'espressione regolare di un carattere che corrisponde a un carattere, inclusi i caratteri del set di codici supplementari, in quella stringa.

      Se, tuttavia, il primo carattere della stringa è un carattere ^ (cirflex), l'espressione regolare a un carattere corrisponde a qualsiasi carattere, inclusi i caratteri del set di codici supplementari, ad eccezione di new-line e dei caratteri rimanenti nella stringa.

      Il ^ ha questo significato speciale solo se si verifica per primo nella stringa. È possibile utilizzare - (segno meno) per indicare un intervallo di caratteri consecutivi, inclusi i caratteri del set di codici supplementari. Ad esempio, [0-9] equivale a [0123456789].

      I caratteri che specificano l'intervallo devono provenire dallo stesso set di codici. Quando i caratteri provengono da set di codice diversi, uno dei caratteri che specificano l’intervallo corrisponde. Il - perde questo significato speciale se si verifica per primo (dopo un ^ iniziale, se presente) o per ultimo nella stringa. La ] (parentesi quadra destra) non termina una stringa di questo tipo quando si tratta del primo carattere al suo interno, dopo un ^ iniziale, se presente. Ad esempio, []a-f] corrisponde a una ] (parentesi quadra destra) o a una delle lettere ASCII da a a a f inclusive. I quattro caratteri elencati come caratteri speciali sopra si trovano all’interno di una stringa di caratteri di questo tipo.

Regole per la costruzione di espressioni regolari da espressioni regolari con un carattere

Puoi utilizzare le seguenti regole per creare espressioni regolari a partire da espressioni regolari a un carattere:

  • Un'espressione regolare con un carattere è un'espressione regolare che corrisponde a qualsiasi tipo di corrispondenza dell'espressione regolare con un carattere.
  • Un'espressione regolare a un carattere seguita da un * (asterisco) è un'espressione regolare che corrisponde a zero o più occorrenze dell'espressione regolare a un carattere, che può essere un carattere aggiuntivo del set di codici. In caso di scelta, viene scelta la stringa più a sinistra più lunga che consente una corrispondenza.
  • Un'espressione regolare a un carattere seguita da un ? (punto interrogativo) è un'espressione regolare che corrisponde a zero o a una occorrenza dell'espressione regolare a un carattere, che può essere un carattere aggiuntivo del set di codici. In caso di scelta, viene scelta la stringa più a sinistra più lunga che consente una corrispondenza.
  • Un'espressione regolare a un carattere seguita da un + (segno più) è un'espressione regolare che corrisponde a una o più occorrenze dell'espressione regolare a un carattere, che può essere un carattere di set di codici supplementare. In caso di scelta, viene scelta la stringa più a sinistra più lunga che consente una corrispondenza.
  • Un'espressione regolare a un carattere seguita da {m}, {m,} o {m,n} è un'espressione regolare che corrisponde a un intervallo di occorrenze dell'espressione regolare a un carattere. i valori di m e n devono essere numeri interi non negativi inferiori a 256; {m} corrisponde esattamente a m occorrenze; {m,} corrisponde ad almeno m occorrenze; {m,n} corrisponde a qualsiasi numero di occorrenze tra m e n inclusive. Ogni volta che esiste una scelta, l'espressione regolare corrisponde al maggior numero possibile di occorrenze.
  • La concatenazione di espressioni regolari è un’espressione regolare che corrisponde alla concatenazione delle stringhe abbinate a ciascun componente dell’espressione regolare.
  • Un'espressione regolare racchiusa tra le sequenze di caratteri ( e ) è un'espressione regolare che corrisponde a qualsiasi corrispondenza dell'espressione regolare non adornata.
  • Un'espressione regolare seguita da una | (barra verticale) seguita da un'espressione regolare è un'espressione regolare che corrisponde alla prima espressione regolare (prima della barra verticale) o alla seconda espressione regolare (dopo la barra verticale).

Puoi anche vincolare un’espressione regolare affinché corrisponda solo a un segmento iniziale o finale di una riga, oppure a entrambi.

  • Un ^ (circonflex) all'inizio di un'espressione regolare vincola tale espressione regolare affinché corrisponda a un segmento iniziale di una riga.
  • Un $ (simbolo del dollaro) alla fine di un'intera espressione regolare vincola tale espressione regolare affinché corrisponda a un segmento finale di una riga.
  • La costruzione ^espressione regolare$ vincola l'espressione regolare affinché corrisponda all'intera riga.

Esistono alcuni nomi di classe di caratteri predefiniti che è possibile utilizzare al posto di complesse espressioni regolari tra parentesi quadre. Ad esempio, una cifra può essere rappresentata dall'espressione regolare a un carattere [0-9] o dall'espressione regolare a un carattere della classe di caratteri [[:cifra:]].

Le classi di caratteri predefinite e il loro significato sono i seguenti:

Classe carattere

Significato

[[:alnum:]]

Un carattere alfabetico o una cifra.

[[:alpha:]]

Un carattere alfabetico.

[[:vuoto:]]

Uno spazio o una scheda.

[[:cntrl:]]

un codice di controllo; carattere non stampabile.

[[:cifra:]]

Una cifra.

[[:graph:]]

Qualsiasi carattere di stampa tranne lo spazio.

[[:lower:]]

Carattere alfabetico minuscolo.

[[:print:]]

Qualsiasi carattere di stampa, compreso lo spazio.

[[:punct:]]

Punteggiatura.

[[:space:]]

Spazio vuoto, ad esempio uno spazio, una scheda o una fine riga.

[[:high:]]

Carattere alfabetico maiuscolo.

[[:xcifra:]]

Una cifra esadecimale, maiuscola o minuscola.

Due nomi di classe di caratteri speciali corrispondono allo spazio null all'inizio e alla fine di una parola. In altre parole, non corrispondono a un carattere effettivo. Una parola è considerata una qualsiasi sequenza di caratteri alfabetici, cifre o caratteri di sottolineatura (_).

Classe carattere

Significato

[[:<:]]

inizio di una parola

[[:>:]]

fine di una parola

In questa pagina