Jump to content

Expressões regulares


zeitler
 Share

Recommended Posts

Boas!

Sou novo em python e estou com um problema com expressões regulares.

Tenho um ficheiro HTML que leio para uma variável. Depois pretendo analisá-lo de forma a encontrar determinados blocos de texto. Acontece que quando a expressão a procurar engloba mais do que uma linha é retornado None.

Parte do conteúdo do HTML é o seguinte:

...

<B>AAA</B><BR></DIV>                                                     

 <BR>                                                                             

<B>BBB</B><BR>                                                         

<B>CCC</B><BR>

...

O que eu  pretendo encontrar é o que está a vermelho (AAA, BBB, CCC). O que está a verde e azul é para efeitos de teste.

O script é o seguinte:

def read_file(file):
    f = open (file, 'r')
    content = f.read()
    f.close()
    return content

def find_pattern(pattern, content):
    new_pattern = re.compile(pattern, re.U | re.M)
    results = re.findall(new_pattern, content)
    return results

def show _results(results):
    print results

Utilzando a pattern para encontrar o que está a vermelho retorna None, utilizando uma pattern para encontar o que está a verde retorna None, utilizando uma pattern para encontrar o que está a azul retorna vários resultados.

A pattern utilizada para encontrar o verde é:  pattern = '<BR><B>'; devolve [ ]

para encontar o azul é: pattern = '<BR>'; devolve ['<BR>', '<BR>', '<BR>', '<BR>', '<BR>', '<BR>', '<BR>', '<BR>', '<BR>', '<BR>', '<BR>', '<BR>', '<BR>']

A expressão que utilizo para encontrar o que está a vermelho está correcta pois já exprimentei colocar o código em apenas uma linha e funciona. O problema é mesmo no caso de multilinha.

Alguém consegue dar uma ajudazita?

Obrigado

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.