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

La classe System.Text.RegularExpressions.Regex può essere utilizzata per eseguire la ricerca di stringhe. Queste ricerche possono essere molto semplici oppure basate sull'uso 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 = 
        {
            "C# code",
            "Chapter 2: Writing Code",
            "Unicode",
            "no match here"
        };

        string sPattern = "code";

        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:
           C# code  (match for 'code' found)
           Chapter 2: Writing Code  (match for 'code' found)
           Unicode  (match for 'code' found)
           no match here
*/

Nell'esempio riportato di seguito viene illustrata un'applicazione console che usa 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 usando 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-555-0190", 
            "444-234-22450", 
            "690-555-0178", 
            "146-893-232",
            "146-555-0122",
            "4007-555-0111", 
            "407-555-0111", 
            "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-555-0190 - valid
     444-234-22450 - invalid
      690-555-0178 - valid
       146-893-232 - invalid
      146-555-0122 - valid
     4007-555-0111 - invalid
      407-555-0111 - valid
        407-2-5555 - invalid
*/

Vedere anche

Concetti

Guida per programmatori C#

Stringhe (Guida per programmatori C#)