Gå til innhold

Se om string inneholder L00T00? (Regex?)


Anbefalte innlegg

Jeg skal sjekke noen linjer av tekst og se om de inneholder L00T00 der "00" kan være et vilkårlig tall mellom 00 og 99. Det første jeg tenkte på er om det er mulig å gjøre noe slikt med RegEx?

 

Jeg har prøvd å lese meg litt opp, men direkte enkelt er det ikke... blush.gif

Lenke til kommentar
Videoannonse
Annonse

Smal sak det:

// Om den inneholder utrykket
var isMatch = Regex.IsMatch(input, @"L\d{2}T\d{2}");

//skriv ut èn match
var match = Regex.Match(input, @"L\d{2}T\d{2}");
Console.WriteLine(m.ToString());

// skriv ut alle mathcer om det er mer enn en forekomst
var match = Regex.Matches(input, @"L\d{2}T\d{2}");
foreach(var m in match)
   Console.WriteLine(m.ToString());

// Om du skal teste mot samme pattern mange ganger
// kan det være ytelse å hente på å lage en forhåndskompilert instans:
var exp = new Regex(@"L\d{2}T\d{2}");
var isMatch = exp.IsMatch(input);

Endret av MailMan13
Lenke til kommentar

Du ken hente dem ut om du setter dem inni en gruppe i utrykket:

var match = Regex.Match(input, @"L(\d{2})T(\d{2})");
var l = match.Groups[1];
var t = match.Groups[2];

match.Groups[0] er hele utrykket, 1...n er hver grupper fra venstre til høyre.

 

Evt. kan du gi dem navn med ?<navn>

var match = Regex.Match(input, @"L(?<L>\d{2})T(?<T>\d{2})");
var l = match.Groups["L"];
var t = match.Groups["T"];

Endret av MailMan13
Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...