python 2.7 - How to better this regex? -
i have list of strings this:
/soccer/poland/ekstraklasa-2008-2009/results/ /soccer/poland/orange-ekstraklasa-2007-2008/results/ /soccer/poland/orange-ekstraklasa-youth-2010-2011/results/ from each string want take middle part resulting in respectively:
ekstraklasa orange ekstraklasa orange ekstraklasa youth my code here job feels can done in fewer steps , regex alone.
name = re.search('/([-a-z\d]+)/results/', string).group(1) # take middle part name = re.search('[-a-z]+', name).group() # trim numbers if name.endswith('-'): name = name[:-1] # trim tailing `-` if needed name = name.replace('-', ' ') can see how make better?
this regex should work:
/(?:\/\w+){2}\/([\w\-]+)(?:-\d+){2}/ explanation:
(?:\/\w+){2}- eat first 2 words delimited/\/- eat next/([\w\-]+)- match word characters of hyphens (this we're looking for)(?:-\d+){2}- eat hyphens , numbers after part we're looking for
the result in first match group
Comments
Post a Comment