Home > OS >  C# Regular Expression Matches
C# Regular Expression Matches

Time:09-07

I am writing a function to get the matches from an input string in which I need to extract the matches.

Input samples:

1) QUO-{RANDSTRING:5}-{DATETIMEUTC:yyyy}
2) {RANDSTRING:2}-{RANDNUMBER:4}
3) PREFIX-{RANDSTRING:2}-ANY-TEXT-{RANDNUMBER:4}-SUFIX

The input can be anything like the example above. The text outside the {} can be anything. The text within {} is the relevant part.

So, the regular expression should extract the matches as follow:

Input: QUO-{RANDSTRING:5}-{DATETIMEUTC:yyyy}
Matches: RANDSTRING and DATETIMEUTC

Input: {RANDSTRING:2}-{RANDNUMBER:4}
Matches: RANDSTRING and RANDNUMBER

Input: PREFIX-{RANDSTRING:2}-ANY-TEXT-{RANDNUMBER:4}-SUFIX
Matches: RANDSTRING and RANDNUMBER

CodePudding user response:

I'm assuming you want every sequence of upper-case letters between { and :.

Regex.Matches(input, @"(?<={)[A-Z] (?=:)")

Explanation:

  • (?<={) looks for a { before the match
  • [A-Z] matches at least one upper-case letter
  • (?=:) looks for a : after the match
  • Related