Extract part of a regex match Extract part of a regex match python python

Extract part of a regex match


Use ( ) in regexp and group(1) in python to retrieve the captured string (re.search will return None if it doesn't find the result, so don't use group() directly):

title_search = re.search('<title>(.*)</title>', html, re.IGNORECASE)if title_search:    title = title_search.group(1)


Note that starting Python 3.8, and the introduction of assignment expressions (PEP 572) (:= operator), it's possible to improve a bit on Krzysztof KrasoĊ„'s solution by capturing the match result directly within the if condition as a variable and re-use it in the condition's body:

# pattern = '<title>(.*)</title>'# text = '<title>hello</title>'if match := re.search(pattern, text, re.IGNORECASE):  title = match.group(1)# hello


Try using capturing groups:

title = re.search('<title>(.*)</title>', html, re.IGNORECASE).group(1)