tags:

views:

68

answers:

1

I have found two ways to extract matches in Python:

1.

def extract_matches(regexp, text):
  matches = re.match(regexp, text)
  if matches:
    return matches.group(1)

2.

def extract_matches(regexp, text):
  try:
    return re.findall(regexp, text)[0]
  except IndexError:
    return None

Which one would you suggest me to use? And do you know any other ways to do this?

Thanks, Boda Cydo.

+6  A: 

I would more often use re.search (which returns any match, not just one constrained to start at the beginning of the string as re.match does!) if I'm looking for just one match, re.finditer if I want to loop over all matches. Never re.findall if I'm going after only one match though, that's wasted effort with no upside!

Alex Martelli
Thanks for the answer, Alex.
bodacydo