- 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. 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. 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 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:
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 |