Bunun yeterli olacağını düşünüyorum:
#!python
import re
pattern = re.compile(r'<title>([^<]*)</title>', re.MULTILINE|re.IGNORECASE)
pattern.search(text)
... metninizin (HTML) "metin" adlı bir değişkende olduğu varsayılarak.
Bu aynı zamanda, bir HTML TITLE etiketinin içine yasal olarak gömülebilecek başka HTML etiketlerinin olmadığını ve bu tür bir kap / blok içerisine başka herhangi bir <karakterini yasal olarak gömmenin bir yolu olmadığını varsayar.
Ancak ...
Python'da HTML ayrıştırması için normal ifadeler kullanmayın. Bir HTML ayrıştırıcı kullanın! (Tam bir ayrıştırıcı yazmayacaksanız, bu, çeşitli HTML, SGML ve XML ayrıştırıcıları zaten standart kitaplıklarda olduğunda fazladan bir iş olacaktır.
Eğer "gerçek dünya" etiketini işliyorsanız (ki bu genellikle herhangi bir SGML / XML doğrulayıcıya uymamaktadır), o zaman BeautifulSoup paketini kullanın . Standart kitaplıklarda yoktur (henüz) ancak bu amaç için yaygın olarak önerilir.
Diğer bir seçenek ise: lxml ... düzgün yapılandırılmış (standartlara uygun) HTML için yazılmıştır. Ancak BeautifulSoup'u ayrıştırıcı olarak kullanmaya geri dönüş seçeneği vardır: ElementSoup .