Un'espressione regolare (regex) è una sequenza di caratteri che definisce un modello di ricerca. Ecco come scrivere le espressioni regolari:
- Inizia comprendendo i caratteri speciali utilizzati nelle espressioni regolari come "." '*' '+' '?' e altro ancora.
- Scegli un linguaggio di programmazione o uno strumento che supporti le espressioni regolari come Python Perl o grep.
- Scrivi il tuo modello utilizzando caratteri speciali e caratteri letterali.
- Utilizzare la funzione o il metodo appropriato per cercare il modello in una stringa.
Esempi:
- Per abbinare una sequenza di caratteri letterali è sufficiente scrivere tali caratteri nel modello.
- Per abbinare un singolo carattere da un insieme di possibilità utilizzare parentesi quadre, ad es. [0123456789] corrisponde a qualsiasi cifra.
- Per abbinare zero o più occorrenze dell'espressione precedente utilizzare il simbolo asterisco (*).
- Per abbinare una o più occorrenze dell'espressione precedente utilizzare il simbolo più (+).
- È 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 operazioni simili a "trova e sostituisci". Le espressioni regolari sono un modo generalizzato per abbinare modelli con sequenze di caratteri. È utilizzato in ogni linguaggio di programmazione come C++ Java e Python.
Cos'è un'espressione regolare e cosa la rende così importante?
Regex è utilizzato in Google Analytics nella corrispondenza degli URL nel supporto della ricerca e delle sostituzioni 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]{25})$
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:
1. Ripetitori ( * + e { } )
Questi simboli agiscono come ripetitori e indicano 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).
sql seleziona da più tabelle
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. {minmax} means that the preceding character is repeated at
least min & at most max times.
5. Carattere jolly ( . )
Il simbolo del punto può prendere il posto di qualsiasi altro simbolo, per questo viene chiamato carattere jolly.
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.
elenco collegato java
Example : ^d{3} will match with patterns like '901' in '901-333-'.8. Il simbolo del dollaro ($).
Dice al computer che la corrispondenza deve verificarsi alla fine della stringa o prima di n 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 gli elementi più basilari 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 punto 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 ab 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 abc .11. [primo-ultimo] Intervallo di caratteri:
Corrisponde a qualsiasi singolo carattere nell'intervallo dal primo all'ultimo.
Example : [a-zA-z] will match any character from a to z or A to Z.12. Il simbolo di fuga ( )
Se vuoi che corrisponda 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. numero
Riferimento posteriore: consente di identificare successivamente una sottoespressione precedentemente abbinata (espressione catturata o racchiusa tra parentesi circolari) nella stessa espressione regolare. n significa che il gruppo racchiuso nella parentesi n-esima verrà ripetuto nella posizione corrente.
stringa su json java
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 : bA(?#This is an inline comment)w+b17. # [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.
Example : (?x)bAw+b#Matches words starting with A