Condividi tramite


Procedura: eseguire la ricerca di stringhe tramite espressioni regolari (Guida per programmatori C#)

Aggiornamento: novembre 2007

La classe System.Text.RegularExpressions.Regex può essere utilizzata per eseguire la ricerca di stringhe. Queste ricerche possono essere molto semplici oppure basate sull'utilizzo delle espressioni regolari. Di seguito sono riportati due esempi di ricerca di stringhe tramite la classe Regex. Per ulteriori informazioni, vedere Espressioni regolari di .NET Framework.

Esempio

Il codice riportato di seguito rappresenta un'applicazione console che esegue una semplice ricerca di stringhe in una matrice, senza distinzione tra maiuscole e minuscole. Il metodo statico Regex.IsMatch esegue la ricerca date la stringa da cercare e una stringa contenente il modello di ricerca. In questo caso, viene utilizzato un terzo argomento per indicare che le lettere maiuscole/minuscole devono essere ignorate. Per ulteriori informazioni, vedere System.Text.RegularExpressions.RegexOptions.

class TestRegularExpressions
{
    static void Main()
    {
        string[] sentences = 
        {
            "cow over the moon",
            "Betsy the Cow",
            "cowering in the corner",
            "no match here"
        };

        string sPattern = "cow";

        foreach (string s in sentences)
        {
            System.Console.Write("{0,24}", s);

            if (System.Text.RegularExpressions.Regex.IsMatch(s, sPattern, System.Text.RegularExpressions.RegexOptions.IgnoreCase))
            {
                System.Console.WriteLine("  (match for '{0}' found)", sPattern);
            }
            else
            {
                System.Console.WriteLine();
            }
        }

        // Keep the console window open in debug mode.
        System.Console.WriteLine("Press any key to exit.");
        System.Console.ReadKey();

    }
}
/* Output:
           cow over the moon  (match for 'cow' found)
           Betsy the Cow  (match for 'cow' found)
           cowering in the corner  (match for 'cow' found)
           no match here
*/

Nell'esempio riportato di seguito viene illustrata un'applicazione console che utilizza le espressioni regolari per convalidare il formato di tutte le stringhe in una matrice. Per la convalida è necessario che tutte le stringhe assumano il formato di un numero di telefono costituito da tre gruppi di cifre separate da trattini, in cui i primi due gruppi contengono tre cifre e il terzo ne contiene quattro. Questa operazione viene eseguita utilizzando l'espressione regolare ^\\d{3}-\\d{3}-\\d{4}$. Per ulteriori informazioni, vedere Elementi del linguaggio di espressioni regolari.

class TestRegularExpressionValidation
{
    static void Main()
    {
        string[] numbers = 
        {
            "123-456-7890", 
            "444-234-22450", 
            "690-203-6578", 
            "146-893-232",
            "146-839-2322",
            "4007-295-1111", 
            "407-295-1111", 
            "407-2-5555", 
        };

        string sPattern = "^\\d{3}-\\d{3}-\\d{4}$";

        foreach (string s in numbers)
        {
            System.Console.Write("{0,14}", s);

            if (System.Text.RegularExpressions.Regex.IsMatch(s, sPattern))
            {
                System.Console.WriteLine(" - valid");
            }
            else
            {
                System.Console.WriteLine(" - invalid");
            }
        }

        // Keep the console window open in debug mode.
        System.Console.WriteLine("Press any key to exit.");
        System.Console.ReadKey();
    }
}
/* Output:
      123-456-7890 - valid
     444-234-22450 - invalid
      690-203-6578 - valid
       146-893-232 - invalid
      146-839-2322 - valid
     4007-295-1111 - invalid
      407-295-1111 - valid
        407-2-5555 - invalid
*/

Vedere anche

Concetti

Guida per programmatori C#

Riferimenti

Stringhe (Guida per programmatori C#)