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):
tr开发者_StackOverflow中文版y:
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!
精彩评论