Tôi nghĩ rằng điều này nên đủ:
#!python
import re
pattern = re.compile(r'<title>([^<]*)</title>', re.MULTILINE|re.IGNORECASE)
pattern.search(text)
... giả sử rằng văn bản của bạn (HTML) nằm trong một biến có tên là "văn bản".
Điều này cũng giả định rằng không có các thẻ HTML khác có thể được nhúng hợp pháp bên trong thẻ HTML TITLE và không có cách nào để nhúng hợp pháp bất kỳ <ký tự nào khác trong một thùng / khối như vậy.
Tuy nhiên ...
Đừng sử dụng các biểu thức thông thường để phân tích cú pháp HTML trong Python. Sử dụng trình phân tích cú pháp HTML! (Trừ khi bạn sẽ viết một trình phân tích cú pháp đầy đủ, đây sẽ là một công việc bổ sung khi các trình phân tích cú pháp HTML, SGML và XML khác nhau đã có trong các thư viện chuẩn.
Nếu thẻ HTML xử lý "thế giới thực" của bạn (thường không tuân thủ bất kỳ trình xác thực SGML / XML nào) thì hãy sử dụng gói BeautifulSoup . Nó không có trong các thư viện tiêu chuẩn (chưa) nhưng được khuyến nghị rộng rãi cho mục đích này.
Một tùy chọn khác là: lxml ... được viết cho HTML có cấu trúc đúng (tuân thủ tiêu chuẩn). Nhưng nó có một tùy chọn để sử dụng BeautifulSoup làm trình phân tích cú pháp: ElementSoup .