Home > OS >  regex expression to match fraction
regex expression to match fraction

Time:09-21

I want to write a python regex expression to match following text

<   0 | d/dR |    1>

I could do something like this

r"<\s*(\d )\s*\|\s*xx\s*\|\s*(\d )\s*>"

but can not figure out how to do the fraction part in the middle (d/dR) represented as xx. Any help? Thank you!!

CodePudding user response:

You can use

<\s*(\d )\s*\|\s*([^<>]*?)\s*\|\s*(\d )\s*>

See the regex demo.

Note the [^<>]*? is used here, it matches any zero or more chars other than < and > chars, as few as possible. < and > are negated because < and > are left- and right-hand delimiters here, and the negated character class helps prevent matching across < and getting unwelcome matched.

See the regex demo. Details:

  • < - a < char
  • \s* - zero or more whitespaces
  • (\d ) - Group 1: one or more digits
  • \s*\|\s* - | enclosed with zero or more whitespaces
  • ([^<>]*?) - Group 2: any zero or more chars other than < and > chars, as few as possible
  • \s*\|\s* - | enclosed with zero or more whitespaces
  • (\d ) - Group 3: one or more digits
  • \s* - zero or more whitespaces
  • > - a > char.
  • Related