C# regex med eksempler

C# regex med eksempler
Regelmessige uttrykk er et av de beste verktøyene som brukes til å matche, søke og erstatte tekst basert på spesifikke mønstre. C# tilbyr støtte for regelmessige uttrykk gjennom System.Tekst.Vanlig uttrykk Navnområde, som gir et omfattende sett med klasser og metoder for bruk av regex i koden. Denne artikkelen vil forklare C# Regex og gi eksempler på hvordan du bruker den effektivt, så hvis du leter etter en enkel måte å lære å bruke dem, kan du lese denne guiden.

Regex i C#

Et vanlig uttrykk er et mønster som brukes til å matche, søke og manipulere tekst; Det kan brukes til en rekke oppgaver, inkludert validering av inngang, leter etter spesifikke mønstre i en streng, og erstatte tekst basert på spesifikke mønstre.

C# regex eksempler

I C# implementeres vanlige uttrykk gjennom Regex -klassen, som gir metoder for å lage, matche og manipulere vanlige uttrykk. Regex -klassen er en del av navneområdet, som er inkludert i .Net Framework, her er fire eksempler som er diskutert i denne guiden:

  • Matcher et enkelt mønster
  • Trekke ut underlag fra en streng
  • Bytte ut underlag i en streng
  • Deling en streng
  • Validering av en inngang

Eksempel 1: Matching et enkelt mønster - C# regex

I dette eksemplet vil vi bruke regex for å matche et enkelt mønster i en streng. Vi vil lage et regex -objekt som samsvarer med mønsteret “Cat” og bruker det til å søke etter mønsteret i en streng.

ved hjelp av system;
Bruke system.Tekst.Vanlig uttrykk;
Klasseprogram

statisk tomrom ()

String input = "Hei og velkommen til Linuxhint";
Regex regex = new regex ("velkomst");
Match Match = Regex.Match (input);
hvis (match.Suksess)

Konsoll.WritLine ("Fant Match:" + Match.Verdi);

ellers

Konsoll.WritLine ("Ingen kamp funnet.");


I denne koden lager vi et regex -objekt som samsvarer med mønsteret "velkomst" og bruker det til å søke etter mønsteret i strengen “Hei og velkommen til Linuxhint.”Match -metoden returnerer et matchobjekt som inneholder informasjon om kampen, inkludert kampens plassering og verdien av kampen. Hvis det blir funnet en kamp, ​​skriver vi ut verdien av kampen til konsollen, og hvis det ikke blir funnet noen kamp, ​​skriver vi ut en melding som indikerer at det ikke ble funnet noen samsvar, her er utdataene fra koden:

Eksempel 2: Ekstrahering av underlag fra en streng - C# regex

I dette eksemplet vil vi bruke regex for å trekke ut underlag fra en streng. Vi oppretter et regex -objekt som samsvarer med mønsteret for et gyldig telefonnummer og bruker det til å trekke ut retningsnummeret fra en telefonnummerstreng.

ved hjelp av system;
Bruke system.Tekst.Vanlig uttrykk;
Klasseprogram

statisk tomrom ()

String input = "Telefonnummer: (361) 785-9370";
Regex regex = new regex (@"\ ((\ d 3) \) (\ d 3)-(\ d 4)");
Match Match = Regex.Match (input);
hvis (match.Suksess)

Konsoll.WritLine ("Telefonnummer:" + Match.Verdi);
Konsoll.WritLine ("Områdekode:" + Match.Grupper [1].Verdi);
Konsoll.WritLine ("Sifmes:" + Match.Grupper [2].Verdi);

ellers

Konsoll.WritLine ("Ingen kamp funnet.");


I denne koden lager vi et regex -objekt som samsvarer med mønsteret for et telefonnummers retningsnummer, som er vedlagt i parenteser. Vi bruker gruppens egenskap til kampobjektet for å få tilgang til den fangede gruppen, som inneholder retningsnummer.

Det vanlige uttrykket @”\ ((\ D 3) \) (\ d 3)-(\ d 4)” samsvarer med hele telefonnummermønsteret, som består av en retningsnummer innelukket i parenteser, et rom og tre sifre etterfulgt av bindestrek og fire sifre til. Den første fangstgruppen (\ d 3) samsvarer med retningsnummeret, den andre fangstgruppen (\ d 3) stemmer overens sifre etter bindestrek. Hvis det ikke blir funnet noen kamp, ​​skriver vi ut en melding som indikerer at det ikke ble funnet noen samsvar, her er utdataene fra koden:

Eksempel 3: Bytte ut underlag i en streng - C# regex

I dette eksemplet vil vi bruke regex for å erstatte underlag i en streng. Vi vil lage et regex -objekt som samsvarer med mønsteret for et ord, og bruker det til å erstatte alle forekomster av ordet "hund" med ordet "katt" i en gitt streng.

ved hjelp av system;
Bruke system.Tekst.Vanlig uttrykk;
Klasseprogram

statisk tomrom ()

String input = "Hei og velkommen til Linuxhint.";
Regex regex = new regex ("hei");
strengutgang = regex.Erstatte (input, "hilsener");
Konsoll.WritLine (output);

Denne koden demonstrerer hvordan du bruker erstatningen () for å erstatte den første forekomsten av en vanlig uttrykkskamp i en streng med en ny verdi. I denne koden oppretter vi et regex -objekt som samsvarer med mønsteret "hei". Vi bruker erstatningsmetoden for å erstatte alle forekomster av mønsteret med strengen “Hilsen”, og den resulterende strengen skrives deretter ut til konsollen, og her er utgangen fra koden:

Eksempel 4: Splitting en streng - C# regex

I dette eksemplet vil vi bruke regex for å dele en streng i underlag. Vi vil lage et regex -objekt som samsvarer med mønsteret for Whitespace, og bruker det til å dele en gitt streng i en rekke underlag.

ved hjelp av system;
Bruke system.Tekst.Vanlig uttrykk;
Klasseprogram

statisk tomrom ()

String input = "Hei og velkommen til Linuxhint.";
Regex regex = newRegex (@"\ s+");
String [] substrings = regex.Split (input);
Foreach (String Substring in Substrings)

Konsoll.WritLine (Substring);


I denne koden lager vi et regex -objekt som samsvarer med mønsteret for hvitrommetegn, for eksempel mellomrom og faner. Vi bruker Split -metoden for å dele inngangsstrengen i substrings -matriser, ved å bruke Whitespace -mønsteret som avgrensning. De resulterende underlagene skrives deretter ut til konsollen ved hjelp av en foreach -sløyfe, og her er utgangen fra koden:

Denne koden demonstrerer hvordan du bruker delingen () for å dele en streng i en rekke underlag basert på en vanlig uttrykkskamp. I dette tilfellet samsvarer det vanlige uttrykket ett eller flere Whitespace -tegn (\ s+), så inngangsstrengen er delt inn i tre underlag: “Hallo”, “og” og “Velkommen til Linuxhint”.

Eksempel 5: Bruke et vanlig uttrykk for å validere input - C# regex

I dette eksemplet vil vi bruke regex for å validere innspill fra brukeren. Vi oppretter et regex -objekt som samsvarer med mønsteret for en gyldig e -postadresse og bruker det til å validere inngangen som er gitt av brukeren.

ved hjelp av system;
Bruke system.Tekst.Vanlig uttrykk;
Klasseprogram

statisk tomrom ()

Konsoll.Skriv ("Skriv inn e -postadressen din:");
Strenginngang = konsoll.Readline ();
Regex regex = new regex (@"^[\ w- \.]+@([\ w-]+\.)+[\ w-] 2,4 $ ");
if (regex.IsMatch (input))

Konsoll.WritLine ("Gyldig e -postadresse.");

ellers

Konsoll.WritLine ("Ugyldig e -postadresse.");


I denne koden lager vi et regex -objekt som samsvarer med mønsteret for en gyldig e -postadresse. Mønsteret er et komplekst vanlig uttrykk som samsvarer med formatet til en typisk e -postadresse. Vi bruker ISMatch -metoden for å teste om inngangen som er gitt av brukeren samsvarer med mønsteret, og hvis inngangen samsvarer med mønsteret, skriver vi ut en melding som indikerer at e -postadressen er gyldig, hvis inngangen ikke samsvarer med mønsteret, skriver vi ut en melding som indikerer at e -postadressen er ugyldig.

Noen vanlige Regex -uttrykk

Tabellen over Regex -uttrykk gir en liste over vanlige vanlige uttrykksmønstre som brukes til tekstmanipulering i C#. Kolonnen "Expression" inneholder den faktiske syntaksen som brukes til matchende tekst, mens "beskrivelse" -kolonnen gir en kort forklaring av mønsterets funksjon:

Uttrykk Beskrivelse
“X, y” Samsvarer mellom x og y forekomster av foregående karakter eller gruppe
“+” Samsvarer med en eller flere av den foregående karakteren eller gruppen
“^” Samsvarer med starten på en streng
“[]” Samsvarer med en hvilken som helst karakter i parentesene
“N” Samsvarer nøyaktig n forekomster av den foregående karakteren eller gruppen
“[^]” Samsvarer med noen karakter som ikke er i parentesene
“.” Samsvarer med en hvilken som helst enkelt karakter bortsett fra en ny linje
“$” Samsvarer med slutten av en streng
“S” Samsvarer med et hvilket.)
“\ S” Samsvarer med ethvert ikke-hvittromskarakter
“W” Samsvarer med et hvilket som helst ordkarakter (bokstav, siffer eller understrek)
“\ D” Matcher ethvert siffer (0-9)
“()” Grupper en serie karakterer sammen
“W” Samsvarer med ethvert ikke-ord karakter
Samsvarer med en eller flere av den foregående karakteren eller gruppen
“\ D” Samsvarer med en hvilken som helst karakter som ikke er et siffer

Konklusjon

Avslutningsvis er vanlige uttrykk en kraftig måte å jobbe med tekstdata i C#. Disse 5 eksemplene viser allsidigheten til Regex, fra enkel mønstermatching til mer avanserte operasjoner som validering og strengmanipulering. Ved å mestre Regex, kan du forbedre din evne til å jobbe med tekstdata i C#.