python – Extract part of a regex match
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 doesnt find the result, so dont 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), its 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 conditions body:
# pattern = <title>(.*)</title>
# text = <title>hello</title>
if match := re.search(pattern, text, re.IGNORECASE):
title = match.group(1)
# hello
python – Extract part of a regex match
Try using capturing groups:
title = re.search(<title>(.*)</title>, html, re.IGNORECASE).group(1)