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 Linguaggio di espressioni regolari - Riferimento rapido.
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
Riferimenti
System.Text.RegularExpressions.Regex
Concetti
Linguaggio di espressioni regolari - Riferimento rapido