Frage

Ich habe eine mako Vorlage, die etwa wie folgt aussieht:

% if staff:
    <!-- begin staff -->
    ...
    <!-- end staff -->
% endif

So, wenn ich das Personal Variable als wahr passieren, sollten diese Kommentare erscheinen. Ich versuche, dies zu testen, indem Sie einen regulären Ausdruck, der wie folgt aussieht:

re.search('<!-- begin staff -->.*<!-- end staff -->', text)

Ich habe festgestellt, dass die Kommentare in der HTML-Ausgabe erscheinen, aber der reguläre Ausdruck stimmt nicht überein. Ich habe sogar versucht, die Kommentare (<!-- begin staff --> und <!-- end staff -->) durch re.escape setzen, aber noch kein Glück. Was mache ich falsch?

Oder gibt es einen besseren Weg, diesen Test zu laufen?

War es hilfreich?

Lösung

In der Standardeinstellung . nicht Zeilenumbrüche übereinstimmen - müssen Sie die re.DOTALL Option hinzufügen

.
re.search('<!-- begin staff -->.*<!-- end staff -->', text, re.DOTALL)

Wenn Sie mehr als ein Mitarbeiter Schnitt haben, können Sie auch das Spiel ungreedy machen wollen:

re.search('<!-- begin staff -->.*?<!-- end staff -->', text, re.DOTALL)
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top