Correspondant à une paire de commentaires en HTML en utilisant des expressions régulières

StackOverflow https://stackoverflow.com/questions/756898

Question

J'ai un modèle de Mako qui ressemble à ceci:

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

De cette façon, si je passe la variable du personnel comme étant vrai, ces commentaires devraient apparaître. Je suis en train de tester en utilisant une expression régulière qui ressemble à ceci:

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

Je l'ai vérifié que les commentaires apparaissent dans la sortie HTML, mais l'expression régulière ne correspond pas. J'ai même essayé de mettre les commentaires (<!-- begin staff --> et <!-- end staff -->) par re.escape, mais toujours pas de chance. Qu'est-ce que je fais mal?

Ou est-il une meilleure façon de lancer ce test?

Était-ce utile?

La solution

Par . par défaut ne correspond pas à des sauts de ligne - vous devez ajouter l'option re.DOTALL

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

Si vous avez plus d'une section du personnel, vous pouvez également faire le match ungreedy:

re.search('<!-- begin staff -->.*?<!-- end staff -->', text, re.DOTALL)
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top