2009-04-16 6 views
1

Passende habe ich eine mako Vorlage, die etwa wie folgt aussieht:ein Paar Kommentare in HTML mit regulären Ausdrücken

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

diese Weise, wenn ich das Personal Variable als wahr passieren, erscheinen diese Kommentare sollten. 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 zu setzen, aber immer noch kein Glück. Was mache ich falsch?

Oder gibt es eine bessere Möglichkeit, diesen Test durchzuführen?

Antwort

9

Standardmäßig stimmt . nicht mit Zeilenvorschüben überein - Sie müssen die Option re.DOTALL hinzufügen.

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

Wenn Sie mehr als einen Mitarbeiter Abschnitt haben, wollen Sie vielleicht auch das Spiel ungreedy machen:

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

Vielen Dank. Ich dachte, es wäre etwas Dummes. :-) –

Verwandte Themen