Pergunta

Eu tenho um modelo mako que é algo como isto:

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

Dessa forma, se eu passar a variável pessoal como sendo verdade, esses comentários devem aparecer. Eu estou tentando testar isso usando uma expressão regular que se parece com isso:

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

eu tenho verificado que os comentários aparecem na saída HTML, mas a expressão regular não corresponde. Eu mesmo tentei colocar os comentários (<!-- begin staff --> e <!-- end staff -->) através re.escape, mas ainda não sorte. O que estou fazendo de errado?

Ou há uma maneira melhor para executar este teste?

Foi útil?

Solução

Por padrão . não coincide com novas linhas -. Você precisa adicionar a opção re.DOTALL

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

Se você tem mais de uma seção de pessoal, que você pode também querer fazer o jogo ungreedy:

re.search('<!-- begin staff -->.*?<!-- end staff -->', text, re.DOTALL)
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top