in reply to Capture groups

For some reason I'm using the regex but its not working:
([A-Za-z]*\s[A-Za-z]*)\s([0-9]{1,2}[%])
I just tested it in a regex tester and it was working fine but in perl it doesn't work...

Replies are listed 'Best First'.
Re^2: Capture groups
by nefigah (Monk) on Mar 05, 2008 at 00:49 UTC
    For some reason I'm using the regex but its not working:
    That is a pretty specific regex... will none of your text chunks be only 1 word? Also, the 2nd \s may cause a problem if the number is separated from the text by multiple tabs/spaces.
      Again (cf above) making \s match multiple whitespace -- tabs or spaces, to judge from OP - is easily handled with a "+" after the second \s.

      The point about the possibility of single word "text chunks" is well made... so long as the words "pretty specific regex" are not intended to deprecate specificity.

      IMO, specificity is *GOOD* in a regex unless ambiguity (or at least, specific generalizations) are required because a less-than-specific regex can lead to hard-to-find problems where the source data includes unexpected content.

      Consider,

      H2O     60%
      or
      Grand Canyon3     70%
      or
      Teller-Bose condensate     50%

      Does one want the "water" entry or the footnoted "Grand Canyon" in the output?