249 Stimmen

Teil einer Regex-Übereinstimmung extrahieren

Ich möchte einen regulären Ausdruck, um den Titel aus einer HTML-Seite zu extrahieren. Derzeit habe ich dies:

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

Gibt es einen regulären Ausdruck, der nur den Inhalt von <title> extrahiert, so dass ich die Tags nicht entfernen muss?

10 Stimmen

Wow, ich kann nicht glauben, dass all die Antworten dazu auffordern, die gesamte HTML-Seite zu analysieren, nur um einen einfachen Titel zu extrahieren. Was für ein Overkill!

5 Stimmen

Der Titel der Frage sagt alles - das angegebene Beispiel geschieht HTML zu sein, aber das allgemeine Problem ist ... allgemein.

1voto

Martim Passos Punkte 117

Gibt es einen bestimmten Grund, warum niemand die Verwendung von Lookahead und Lookbehind vorgeschlagen hat? Ich habe hier versucht, genau das Gleiche zu tun und (?<=<title>).+(?=<\/title>) funktioniert hervorragend. Es wird nur übereinstimmen, was zwischen Klammern, so dass Sie nicht haben, um die ganze Gruppe Sache zu tun.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X