Linguaggio

Procedura: Rimuovere caratteri non validi da una stringa

Nell'esempio seguente viene utilizzato il metodo statico Regex.Replace per rimuovere caratteri non validi da una stringa.

Avvertimento

L'uso senza restrizioni di System.Text.RegularExpressions con input non attendibile può esporre le applicazioni a attacchi di negazione del servizio. Per indicazioni su come usare in modo sicuro .NET espressioni regolari con input non attendibile, vedere Procedure consigliate per le espressioni regolari in .NET.

Example

È possibile utilizzare il CleanInput metodo definito in questo esempio per rimuovere caratteri potenzialmente dannosi immessi in un campo di testo che accetta l'input dell'utente. In questo caso, CleanInput rimuove tutti i caratteri non alfanumerici tranne i punti (.), i simboli (@) e i trattini (-) e restituisce la stringa rimanente. Tuttavia, è possibile modificare il criterio di espressione regolare in modo da rimuovere tutti i caratteri che non devono essere inclusi in una stringa di input.

using System;
using System.Text.RegularExpressions;

public class Example
{
    static string CleanInput(string strIn)
    {
        // Replace invalid characters with empty strings.
        try {
           return Regex.Replace(strIn, @"[^\w\.@-]", "",
                                RegexOptions.None, TimeSpan.FromSeconds(1.5));
        }
        // If we timeout when replacing invalid characters,
        // we should return Empty.
        catch (RegexMatchTimeoutException) {
           return String.Empty;
        }
    }
}
Imports System.Text.RegularExpressions

Module Example
    Function CleanInput(strIn As String) As String
        ' Replace invalid characters with empty strings.
        Try
            Return Regex.Replace(strIn, "[^\w\.@-]", "")
            ' If we timeout when replacing invalid characters, 
            ' we should return String.Empty.
        Catch e As RegexMatchTimeoutException
            Return String.Empty
        End Try
    End Function
End Module

Il criterio [^\w\.@-] di espressione regolare corrisponde a qualsiasi carattere che non sia un carattere di parola, un punto, un simbolo @ o un trattino. Un carattere di parola è qualsiasi lettera, cifra decimale o connettore di punteggiatura, ad esempio un carattere di sottolineatura. Qualsiasi carattere che corrisponde a questo modello viene sostituito da String.Empty, ovvero la stringa definita dal criterio di sostituzione. Per consentire caratteri aggiuntivi nell'input utente, aggiungi tali caratteri alla classe di caratteri nel modello dell'espressione regolare. Ad esempio, il modello di espressione regolare [^\w\.@-\\%] consente anche il simbolo di percentuale e una barra rovesciata in una stringa di input.

Vedere anche