#53: Sostituzione case-insensitive di una stringa all’interno di altra stringa

Il metodo Replace di un oggetto stringa è case-sensitive, cioè tiene conto delle lettere maiuscole-minuscole. Per esempio, provate a eseguire questo codice:

      Dim str As String = "Testo da Sostituire"
      str = str.Replace("sostituire", "cancellare")
      MessageBox.Show(str)
      str = str.Replace("Sostituire", "cancellare")
      MessageBox.Show(str)

Il risultato visualizzato dalla prima MessageBox sarà uguale alla stringa originale, perché “Sostituire” è diverso da “sostituire”, mentre con la seconda MessageBox otterremo effettivamente la sostituzione desiderata, perché abbiamo specificato esattamente la stringa così come appare nel testo originale.

Da questo esempio desumiamo che il metodo Replace è “case sensitive”, cioè tiene conto dei caratteri maiuscoli-minuscoli.

Come fare, quindi, a sostituire una stringa all’interno di un’altra stringa senza tenere conto della differenza maiuscole-minuscole, cioè quello che in inglese è definito “case insensitive”?

Possiamo per una volta scomodare le espressioni regolari: intendiamoci, non dobbiamo utilizzare strane sequenze di caratteri che a prima vista sembrano geroglifici. Basta utilizzare il metodo … Replace! Più facile di così… Il codice per ottenere questo risultato è il seguente:

      Dim str As String = _
         "trova PaRoLa e sostituisci con parola"
      Dim strReplace As String = "parola"
      str = Regex.Replace(str, "parola", _
         strReplace, RegexOptions.IgnoreCase)
      MessageBox.Show(str)

Attenzione che per utilizzare le espressioni regolari, dobbiamo anche importare il relativo namespace:

Imports System.Text.RegularExpressions

In questo caso vedremo che il risultato è perfettamente adatto al nostro scopo.

Annunci

Pubblicato il 7 giugno 2009 su Novità. Aggiungi ai preferiti il collegamento . Lascia un commento.

Rispondi

Inserisci i tuoi dati qui sotto o clicca su un'icona per effettuare l'accesso:

Logo WordPress.com

Stai commentando usando il tuo account WordPress.com. Chiudi sessione / Modifica )

Foto Twitter

Stai commentando usando il tuo account Twitter. Chiudi sessione / Modifica )

Foto di Facebook

Stai commentando usando il tuo account Facebook. Chiudi sessione / Modifica )

Google+ photo

Stai commentando usando il tuo account Google+. Chiudi sessione / Modifica )

Connessione a %s...

%d blogger hanno fatto clic su Mi Piace per questo: