C# regex con esempi

C# regex con esempi
Le espressioni regolari sono uno dei migliori strumenti utilizzati per abbinare, cercare e sostituire il testo in base a schemi specifici. C# offre supporto per espressioni regolari attraverso il Sistema.Testo.Espressioni regolari Spazio dei nomi, che fornisce un insieme completo di classi e metodi per l'utilizzo di Regex nel codice. Questo articolo spiegherà C# regex e fornirà esempi su come usarlo in modo efficace, quindi se stai cercando un modo semplice per imparare a usarli, leggi questa guida.

Regex in c#

Un'espressione regolare è un modello usato per abbinare, cercare e manipolare il testo; Può essere utilizzato per una varietà di attività, tra cui la convalida input, la ricerca di schemi specifici all'interno di una stringa e la sostituzione di testo in base a modelli specifici.

C# regex esempi

In C# le espressioni regolari sono implementate attraverso la classe Regex, che fornisce metodi per la creazione, la corrispondenza e la manipolazione delle espressioni regolari. La classe Regex fa parte dello spazio dei nomi, che è incluso nel .Framework Net, qui ci sono quattro esempi discussi in questa guida:

  • Abbinare un modello semplice
  • Estrarre sottostringhe da una stringa
  • Sostituire i sottostringi in una stringa
  • Dividere una stringa
  • Convalidamento di un input

Esempio 1: abbinamento di un modello semplice - c# regex

In questo esempio, useremo Regex per abbinare un modello semplice in una stringa. Creeremo un oggetto regex che corrisponda al modello "gatto" e lo useremo per cercare il modello in una stringa.

usando il sistema;
Utilizzo del sistema.Testo.Espressioni regolari;
Programma di classe

void statico main ()

string input = "ciao e benvenuto su linuxhint";
Regex regex = new regex ("benvenuto");
Match match = regex.Match (input);
Se (corrispondenza.Successo)

Console.WriteLine ("Trovato Match:" + Match.Valore);

altro

Console.WriteLine ("Nessuna partita trovata.");


In questo codice, creiamo un oggetto regex che corrisponda al modello "benvenuto" e lo utilizziamo per cercare il modello nella stringa "Ciao e benvenuti a LinuxHint."Il metodo di corrispondenza restituisce un oggetto Match che contiene informazioni sulla partita, inclusa la posizione della partita e il valore della partita. Se viene trovata una corrispondenza, stampiamo il valore della corrispondenza alla console e se non viene trovata alcuna corrispondenza, stampiamo un messaggio che indica che non è stata trovata alcuna corrispondenza, ecco l'output del codice:

Esempio 2: estrazione di substrings da una stringa - c# regex

In questo esempio, useremo Regex per estrarre i sottostringi da una stringa. Creeremo un oggetto Regex che corrisponda al modello per un numero di telefono valido e lo useremo per estrarre il codice area da una stringa di numero di telefono.

usando il sistema;
Utilizzo del sistema.Testo.Espressioni regolari;
Programma di classe

void statico main ()

String input = "Numero di telefono: (361) 785-9370";
Regex regex = new regex (@"\ ((\ d 3) \) (\ d 3)-(\ d 4)");
Match match = regex.Match (input);
Se (corrispondenza.Successo)

Console.WriteLine ("Numero di telefono:" + Match.Valore);
Console.WriteLine ("Codice area:" + Match.Gruppi [1].Valore);
Console.WriteLine ("Cifre:" + Match.Gruppi [2].Valore);

altro

Console.WriteLine ("Nessuna partita trovata.");


In questo codice, creiamo un oggetto Regex che corrisponda al modello per il codice dell'area di un numero di telefono, che è racchiuso tra parentesi. Utilizziamo la proprietà dei gruppi dell'oggetto Match per accedere al gruppo catturato, che contiene il codice dell'area.

L'espressione regolare @"\ ((\ D 3) \) (\ d 3)-(\ d 4)" corrisponde all'intero modello di numero di telefono, che consiste in un codice di area racchiuso tra parentesi, uno spazio e tre cifre seguite da un trattino e altre quattro cifre. Il primo gruppo di cattura (\ d 3) corrisponde al codice di area, il secondo gruppo di cattura (\ d 3) corrisponde alle tre cifre dopo lo spazio e il terzo gruppo di cattura (\ d 4) si abbina ai quattro cifre dopo il trattino. Se non viene trovata alcuna corrispondenza, stampiamo un messaggio che indica che non è stata trovata alcuna corrispondenza, ecco l'output del codice:

Esempio 3: Sostituzione di substrings in una stringa - c# regex

In questo esempio, useremo Regex per sostituire i sottostringi in una stringa. Creeremo un oggetto regex che corrisponda al modello per una parola e lo useremo per sostituire tutte le occorrenze della parola "cane" con la parola "gatto" in una determinata stringa.

usando il sistema;
Utilizzo del sistema.Testo.Espressioni regolari;
Programma di classe

void statico main ()

String input = "Ciao e benvenuti a LinuxHint.";
Regex regex = new regex ("ciao");
String output = regex.Sostituire (input, "saluti");
Console.WriteLine (output);

Questo codice dimostra come utilizzare la sostituzione () per sostituire la prima occorrenza di una corrispondenza di espressione regolare in una stringa con un nuovo valore. In questo codice, creiamo un oggetto regex che corrisponda al modello "ciao". Usiamo il metodo Sostituisci per sostituire tutte le occorrenze del modello con la stringa "Saluti" e la stringa risultante viene quindi stampata sulla console e qui è l'output del codice:

Esempio 4: dividere una stringa - c# regex

In questo esempio, useremo Regex per dividere una stringa in substrings. Creeremo un oggetto regex che corrisponda al modello per spazi bianchi e lo useremo per dividere una determinata stringa in una serie di substringe.

usando il sistema;
Utilizzo del sistema.Testo.Espressioni regolari;
Programma di classe

void statico main ()

String input = "Ciao e benvenuti a LinuxHint.";
Regex regex = newRegex (@"\ s+");
string [] substrings = regex.Diviso (input);
foreach (sottostringa stringa in substrings)

Console.WriteLine (substring);


In questo codice, creiamo un oggetto Regex che corrisponda al modello per i caratteri di spazi bianchi, come spazi e schede. Utilizziamo il metodo diviso per dividere la stringa di input in array di sottostringi, usando il modello di spazio bianco come delimitatore. I sottostringi risultanti vengono quindi stampati sulla console utilizzando un ciclo foreach ed ecco l'output del codice:

Questo codice dimostra come utilizzare la split () per dividere una stringa in una serie di sottostringi in base a una corrispondenza di espressione regolare. In questo caso, l'espressione regolare corrisponde a uno o più caratteri di spazi bianchi (\ s+), quindi la stringa di input è divisa in tre sottostringhe: "ciao", "e" e "welcome to linuxhint".

Esempio 5: usando un'espressione regolare per convalidare l'input - c# regex

In questo esempio, useremo Regex per convalidare l'input dall'utente. Creeremo un oggetto Regex che corrisponda al modello per un indirizzo e -mail valido e lo utilizzeremo per convalidare l'input fornito dall'utente.

usando il sistema;
Utilizzo del sistema.Testo.Espressioni regolari;
Programma di classe

void statico main ()

Console.Scrivi ("Inserisci il tuo indirizzo email:");
String Input = Console.Linea di lettura();
Regex regex = new regex (@"^[\ w- \.]+@([\ w-]+\.)+[\ w-] 2,4 $ ");
if (regex.Ismatch (input))

Console.WriteLine ("Indirizzo e -mail valido.");

altro

Console.WriteLine ("Indirizzo e -mail non valido.");


In questo codice, creiamo un oggetto Regex che corrisponda al modello per un indirizzo email valido. Il modello è un'espressione regolare complessa che corrisponde al formato di un tipico indirizzo email. Utilizziamo il metodo isMatch per verificare se l'input fornito dall'utente corrisponde al modello e se l'input corrisponde al modello, stampiamo un messaggio che indica che l'indirizzo e -mail è valido, se l'ingresso non corrisponde al modello, stampiamo un messaggio indicando che l'indirizzo e -mail non è valido.

Alcune espressioni comuni di regex

La tabella delle espressioni regex fornisce un elenco di schemi di espressione regolari comuni utilizzati per la manipolazione del testo in C#. La colonna "espressione" contiene la sintassi effettiva utilizzata per il testo corrispondente, mentre la colonna "Descrizione" fornisce una breve spiegazione della funzione del modello:

Espressione Descrizione
"X, y" Corrisponde tra le occorrenze X e Y del carattere o del gruppo precedenti
"+" Corrisponde a uno o più del carattere o del gruppo precedenti
"^" Corrisponde all'inizio di una stringa
"[]" Corrisponde a qualsiasi personaggio tra le staffe
"N" Corrisponde esattamente a n occorrenze del carattere o del gruppo precedenti
"[^]" Corrisponde a qualsiasi personaggio non tra le staffe
"." Corrisponde a qualsiasi singolo carattere tranne una nuova linea
"$" Corrisponde alla fine di una stringa
"S" Corrisponde a qualsiasi carattere di spazio bianco (spazio, scheda, nuova linea, ecc.)
"\S" Corrisponde a qualsiasi personaggio non bianco
"W" Corrisponde a qualsiasi carattere di parola (lettera, cifra o sottolineatura)
"\D" Corrisponde a qualsiasi cifra (0-9)
"()" Raggruppa una serie di personaggi insieme
"W" Corrisponde a qualsiasi personaggio non di parola
Corrisponde a uno o più del carattere o del gruppo precedenti
"\D" Corrisponde a qualsiasi personaggio che non è una cifra

Conclusione

In conclusione, le espressioni regolari sono un modo potente per lavorare con i dati di testo in C#. Questi 5 esempi dimostrano la versatilità di Regex, dalla semplice corrispondenza a operazioni più avanzate come la convalida e la manipolazione delle stringhe. Mastering Regex, puoi migliorare notevolmente la tua capacità di lavorare con i dati di testo in C#.