Home > Mobile >  What would be the regex for this value? C#
What would be the regex for this value? C#

Time:07-08

I'm trying to get the regex for this value:

<5fond[3.4,550],[5.4,6.4,7.4, 8.4, 32.4],[ 9.4, 239.8662]

The numbers (minus the second one which appears to just be an integer) can be any decimal value.

I have tried the following but it doesn't seem to work.

private static readonly Regex RegexExp = new Regex(@"<5fond\[[0-9]*\.[0-9] ,[0-9]*\.[0-9] ],\[[0-9]*\.[0-9] ,[0-9]*\.[0-9] ,[0-9]*\.[0-9] ,[0-9]*\.[0-9] \],\[[0-9]*\.[0-9] ,[0-9]*\.[0-9] \]", RegexOptions.IgnorePatternWhitespace);

Any idea what I might be doing wrong?

CodePudding user response:

You can use

<5fond\[\s*\d*\.?\d (?:,\s*\d*\.?\d )*\s*](?:,\s*\[\s*\d*\.?\d (?:,\s*\d*\.?\d )*\s*])*

See the regex demo. Details:

  • <5fond\[ - a <5fond[ string
  • \s* - zero or more whitespaces
  • \d*\.?\d - an int/float number pattern
  • (?:,\s*\d*\.?\d )* - zero or more sequences of a comma, zero or more whitespaces, an int/float number
  • \s* - zero or more whitespaces
  • ] - a ] char
  • (?:,\s*\[\s*\d*\.?\d (?:,\s*\d*\.?\d )*])* - zero or more occurrences of
    • , - a comma
    • \s*\[\s* - a [ char enclosed with zero or more whitespaces
    • \d*\.?\d (?:,\s*\d*\.?\d )* - an int/float and then zero or more occurrences of a comma, zero or more whitespaces, an int/float number
    • ] - a ] char.
  • Related