简体   繁体   中英

What's the correct way to extract a regexp match in Python?

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.

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!

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM