Ich würde denken, das sollte ausreichen:
#!python
import re
pattern = re.compile(r'<title>([^<]*)</title>', re.MULTILINE|re.IGNORECASE)
pattern.search(text)
... vorausgesetzt, Ihr Text (HTML) befindet sich in einer Variablen namens "Text".
Dies setzt auch voraus, dass es keine anderen HTML-Tags gibt, die legal in ein HTML-TITLE-Tag eingebettet werden können, und dass kein anderes <-Zeichen legal in einen solchen Container / Block eingebettet werden kann.
Jedoch ...
Verwenden Sie keine regulären Ausdrücke für die HTML-Analyse in Python. Verwenden Sie einen HTML-Parser! (Es sei denn, Sie schreiben einen vollständigen Parser. Dies wäre eine zusätzliche Arbeit, wenn verschiedene HTML-, SGML- und XML-Parser bereits in den Standardbibliotheken enthalten sind.
Verwenden Sie das BeautifulSoup- Paket, wenn Sie mit "real world" -Tagsuppen- HTML umgehen (das häufig nicht mit einem SGML / XML-Validator übereinstimmt) . Es ist (noch) nicht in den Standardbibliotheken enthalten, wird jedoch zu diesem Zweck allgemein empfohlen.
Eine weitere Option ist: lxml ..., das für ordnungsgemäß strukturiertes (standardkonformes) HTML geschrieben wurde. Es besteht jedoch die Möglichkeit, auf die Verwendung von BeautifulSoup als Parser zurückzugreifen: ElementSoup .