Gå til innhold

Se om string inneholder L00T00? (Regex?)


Anbefalte innlegg

Skrevet

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

Videoannonse
Annonse
Skrevet (endret)

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
Skrevet (endret)

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
Skrevet

Takk for hjelpen! Det fungerer utmerket, og du har spart meg for flere timer med banning og feilsøking for å prøve å gjøre dette "generelt" med tekststrenger! :)

 

Jeg tror nok jeg må lese meg litt opp på RegEx!

Skrevet

Regex kan være noe av det nyttigste du lærer deg. Det er også ofte jeg bruker RegEx i Search & Replace i Visual Studio, for eksempel hvis jeg har en enkel datakilde, men vil hardkode det inn i programmet fremfor å ha en ekstern datafil som må parses, så kan regex løse det enkelt.

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å
×
×
  • Opprett ny...