logo

Tutorial Regex – Come scrivere espressioni regolari?

Un'espressione regolare (regex) è una sequenza di caratteri che definisce un modello di ricerca. Ecco come scrivere espressioni regolari:

  1. Inizia comprendendo i caratteri speciali utilizzati nelle espressioni regolari, come ., *, +, ? e altri.
  2. Scegli un linguaggio di programmazione o uno strumento che supporti le espressioni regolari, come Python, Perl o grep.
  3. Scrivi il tuo modello utilizzando caratteri speciali e caratteri letterali.
  4. Utilizzare la funzione o il metodo appropriato per cercare il modello in una stringa.

Esempi:

  1. Per abbinare una sequenza di caratteri letterali, scrivi semplicemente quei caratteri nel modello.
  2. Per abbinare un singolo carattere da un insieme di possibilità, utilizzare parentesi quadre, ad es. [0123456789] corrisponde a qualsiasi cifra.
  3. Per trovare la corrispondenza con zero o più occorrenze dell'espressione precedente, utilizzare il simbolo asterisco (*).
  4. Per trovare la corrispondenza con una o più occorrenze dell'espressione precedente, utilizzare il simbolo più (+).
  5. È importante notare che le espressioni regolari possono essere complesse e difficili da leggere, quindi è consigliabile utilizzare strumenti come i tester delle espressioni regolari per eseguire il debug e ottimizzare i modelli.

Un'espressione regolare (a volte chiamata espressione razionale) è una sequenza di caratteri che definisce un modello di ricerca, principalmente da utilizzare nella corrispondenza di modelli con stringhe o nella corrispondenza di stringhe, ovvero trova e sostituisci operazioni simili. Le espressioni regolari sono un modo generalizzato per abbinare modelli con sequenze di caratteri. È utilizzato in tutti i linguaggi di programmazione come C++, Java e Python.



Cos'è un'espressione regolare e cosa la rende così importante?

Regex è utilizzato in statistiche di Google nella corrispondenza degli URL nel supporto della ricerca e sostituzione negli editor più popolari come Sublime, Notepad++, Brackets, Google Docs e Microsoft Word.

  Example :    Regular expression for an email address : ^([a-zA-Z0-9_-.]+)@([a-zA-Z0-9_-.]+).([a-zA-Z]{2,5})$>

L'espressione regolare sopra può essere utilizzata per verificare se un dato set di caratteri è un indirizzo email o meno.

Come scrivere espressioni regolari?

Esistono alcuni elementi utilizzati per scrivere espressioni regolari come indicato di seguito:



matrici nella programmazione c

1. Ripetitori ( *, + e { } )

Questi simboli agiscono come ripetitori e dicono al computer che il carattere precedente deve essere utilizzato più di una volta.

2. Il simbolo dell'asterisco ( * )

Dice al computer di abbinare il carattere precedente (o l'insieme di caratteri) per 0 o più volte (fino a infinito).

  Example :   The regular expression ab*c will give ac, abc, abbc, abbbc….and so on>

3. Il simbolo Più ( + )

Dice al computer di ripetere il carattere precedente (o l'insieme di caratteri) almeno una o più volte (fino all'infinito).



  Example :   The regular expression ab+c will give abc, abbc, abbbc, … and so on.>

4. Le parentesi graffe { … }

Dice al computer di ripetere il carattere precedente (o l'insieme di caratteri) per un numero di volte pari al valore all'interno di questa parentesi.

  Example :   {2} means that the preceding character is to be repeated 2  times, {min,} means the preceding character is matches min or more  times. {min,max} means that the preceding character is repeated at least min & at most max times.>

5. Carattere jolly ( . )

Il simbolo del punto può sostituire qualsiasi altro simbolo, per questo viene chiamato carattere jolly.

Java-PGM
  Example :    The Regular expression .* will tell the computer that any character can be used any number of times.>

6. Carattere facoltativo ( ? )

Questo simbolo indica al computer che il carattere precedente può essere presente o meno nella stringa da confrontare.

  Example :    We may write the format for document file as – docx? The ‘?’ tells the computer that x may or may not be  present in the name of file format.>

7. Il simbolo dell'accento circonflesso ( ^ ). ( Impostazione della posizione per la partita)

Il simbolo dell'accento circonflesso indica al computer che la corrispondenza deve iniziare all'inizio della stringa o della riga.

  Example :   ^d{3} will match with patterns like '901' in '901-333-'.>

8. Il simbolo del dollaro ($).

quali mesi sono q3

Dice al computer che la corrispondenza deve verificarsi alla fine della stringa o prima di alla fine della riga o della stringa.

  Example :   -d{3}$ will match with patterns like '-333' in '-901-333'.>

9. Classi di personaggi

Una classe di caratteri corrisponde a uno qualsiasi di un set di caratteri. Viene utilizzato per abbinare l'elemento più basilare di una lingua come una lettera, una cifra, uno spazio, un simbolo, ecc.

S : corrisponde a qualsiasi carattere di spazio bianco come spazio e tabulazione.
S : corrisponde a qualsiasi carattere diverso dagli spazi bianchi.
D : corrisponde a qualsiasi carattere numerico.
D: corrisponde a qualsiasi carattere non numerico.
In : corrisponde a qualsiasi carattere di parola (sostanzialmente alfanumerico)
IN : corrisponde a qualsiasi carattere non verbale.
B : corrisponde a qualsiasi limite di parola (questo include spazi, trattini, virgole, punti e virgola, ecc.
[set_di_caratteri]: Corrisponde a qualsiasi singolo carattere in set_of_characters. Per impostazione predefinita, la corrispondenza fa distinzione tra maiuscole e minuscole.

  Example :   [abc] will match characters a,b and c in any string.>

10. [^set_di_caratteri] Negazione:

Corrisponde a qualsiasi singolo carattere che non si trova in set_of_characters. Per impostazione predefinita, la corrispondenza fa distinzione tra maiuscole e minuscole.

  Example :   [^abc] will match any character except a,b,c .>

11. [primo-ultimo] Intervallo di caratteri:

Corrisponde a qualsiasi singolo carattere nell'intervallo dal primo all'ultimo.

chi è Urfi Javed
  Example :   [a-zA-z] will match any character from a to z or A to Z.>

12. Il simbolo di fuga ()

Se desideri corrispondere ai caratteri effettivi '+', '.' ecc., aggiungi una barra rovesciata () prima di quel carattere. Ciò dirà al computer di trattare il carattere seguente come carattere di ricerca e di considerarlo per un modello di corrispondenza.

  Example :   d+[+-x*]d+ will match patterns like '2+2' and '3*9' in '(2+2) * 3*9'.>

13. Raggruppamento di caratteri ( )

Un insieme di diversi simboli di un'espressione regolare può essere raggruppato insieme per agire come una singola unità e comportarsi come un blocco, per questo è necessario racchiudere l'espressione regolare tra parentesi ( ).

  Example :   ([A-Z]w+) contains two different elements of the regular  expression combined together. This expression will match any pattern  containing uppercase letter followed by any character.>

14. Barra verticale ( | )

Corrisponde a qualsiasi elemento separato dal carattere barra verticale (|).

  Example :   th(e|is|at) will match words - the, this and that.>

15. umero

Riferimento posteriore: consente di identificare successivamente una sottoespressione precedentemente abbinata (espressione catturata o racchiusa tra parentesi circolari) nella stessa espressione regolare. significa che il gruppo racchiuso nella parentesi n-esima verrà ripetuto nella posizione corrente.

  Example :   ([a-z])1 will match ee in Geek because the character  at second position is same as character at position 1 of the match.>

16. Come ( ?# commento )

Commento in linea: il commento termina con la prima parentesi di chiusura.

  Example :   A(?#This is an inline comment)w+>

17. # [fino alla fine della riga]

Commento sulla modalità X. Il commento inizia con un # senza caratteri di escape e continua fino alla fine della riga.

directory di rinomina di Linux
  Example :   (?x)Aw+#Matches words starting with A>