ArcadiA Club
ArcadiA Club


AAC FORUM     AAC News     AAC Box    



Home Page   Home Page
programmazione.htm   Programmazione - FORUM sezione  Vai al FORUM
 
Username:
Password:
Iscriviti!  |  Recupero password



Iscriviti GRATIS, potrai navigare senza questa
fascia e accedere a contenuti esclusivi:

    E-Mail:

Password:



 

 
- Le espressioni regolari: ricerche, rimpiazzamenti e opzioni -
 
COSA SERVE PER QUESTO TUTORIAL
Download | Chiedi sul FORUM | Glossario cognizioni basiche di un qualsiasi linguaggio .Net
Come servirsi delle espressioni regolari in VB.Net

ALCUNI ESEMPI PRATICI
Verificare una o più corrispondenze ed effettuare sostituzioni.

Effettuare il parsing di stringhe è da sempre un'attività complicata e noiosa. Tuttavia grazie alle espressioni regolari, in .Net, questa operazione è resa più agile, vediamo come sono usarle e configurarle.
Tutto ciò che riguarda le espressioni regolari (anche note come regular expressions, RegEx o RegExp) si trova all'interno del namespace System.Text.RegularExpressions, in particolare nella classe RegEx. L'esempio più semplice consiste nel verificare semplicemente se una certa stringa corrisponde (ovvero ha almeno un match) alla regular expression in questione. Per fare ciò ci serviamo della proprietà Match.Success, dove Match è inteso come il singolo risultato di una ricerca:


Dim content As String = "Testo di Esempio"

If Regex.Match(content, "[aeiou]").Success Then
    Console.WriteLine("Contiene una vocale!")
End If

In alternativa si può cercare tutte le occorrenze corrispondenti alla RegEx, utilizzando in questo caso il metodo RegEx.Matches, che restituisce una collezione di Match:


Dim vocali As MatchCollection = Regex.Matches(content, "[aeiou]")
If vocali.Count = 0 Then
    Console.WriteLine("Non contiene vocali!")
Else
    Console.Write("Contiene vocali nelle posizioni: ")
    For Each vocale As Match In vocali
        Console.Write(vocale.Index & " ")
    Next
    Console.WriteLine()
End If

Vediamo anche che tramite la proprietà Match.Index possiamo ottenere la posizione dove comincia la corrispondenza.
Con le RegEx è anche possibile effettuare dei rimpiazzamenti:


Dim newContent As String
newContent = Regex.Replace(content, "[aeiou]", "%VOCALE%")
Console.WriteLine("Rimpiazziamo le vocali: " & newContent)

Anche facendo riferimento ai gruppi identificati nell'espressione regolare di ricerca (tra parentesi), tramite il simbolo del dollaro seguito dall'indice del gruppo:


newContent = Regex.Replace(content, "([aeiou])", "$1$1")
Console.WriteLine("Raddoppiamo le vocali: " & newContent)

Infine ad un gruppo identificato può anche essere associato un nome, sempre richiamabile dall'espressione con cui rimpiazzare:


newContent = Regex.Replace(content, "(?<vocale>[aeiou])", "(${vocale})")
Console.WriteLine("Parentesizziamo le vocali: " & newContent)

OPZIONI PER LE REGULAR EXPRESSION
Personalizzare il comportamento delle espressioni regolari.

Le regular expression hanno varie implementazioni e possono essere configurate, pertanto vediamo il significato di alcuni flag (membri di System.Text.RegularExpressions.RegexOptions) che è possibile specificare quando si instanzia un oggetto di tipo RegEx o passandolo come parametro a Match, Matches o Replace:

  • Compiled: l'espressione regolare verrà compilata migliorando drasticamente le performance di esecuzione ma incrementando leggermente i tempi di avvio;
  • IgnoreCase: effettua ricerca non case-sensitive (nessuna distinzione tra maiuscole e minuscole);
  • MultiLine: modifica il significato dei simboli ^ e $ in modo che corrispondano all'inizio e fine di ciascuna riga invece che all'inizio e alla fine di ciascuna riga;
  • SingleLine: estende il significato del simbolo di match-all (il punto) includendo anche \n, ovvero i ritorni a capo;
  • ECMAScript: compatibile con le regex di JavaScript, equivale a IgnoreCase, MultiLine e Compiled;

Nota: se si usa di frequente una serie di espressioni regolari in forma compilata può essere utile compilarle una volta soltanto e salvarle in un assembly tramite il metodo RegEx.CompileToAssembly.

 

<< INDIETRO by VeNoM00  


Video collegati Visualizza i video di questa pagina
Visualizza video sull'argomento "regex".
Visualizza video sull'argomento "matches".
Visualizza video sull'argomento "replace".
Visualizza video sull'argomento "options".
Visualizza video sull'argomento "regex matches replace options".


Dì la tua: cosa ne pensi?
Esponi il tuo punto di vista e condividilo con migliaia di persone

Oggetto nuova discussione:


Testo del messaggio:

E-Mail:

Quanto fa più dieci:




 





^ TOP  
Linkaci | Segnala errore | Invita | Stampa


pubblicità | privacy | visione | diritti | ufficio stampa | donazioni | scrivici
© 1999-2017 - P.IVA 02284690035 - Grafica, layout e contenuti sono di esclusiva proprietà di ArcadiA Club.

Powered by:
Spazi pubblicitari di alto livello
 

Compra in un click! | Cerca prodotti in offerta: