2014-07-01 4 views
-1

Je jouais avec des correspondances de modèles dans différents codes html de sites J'ai remarqué quelque chose de bizarre. J'ai utilisé ce modèle:Motif de correspondance ne fonctionnait pas comme prévu python

pat = <div class="id-app-orig-desc">.*</div> 

Je l'ai utilisé sur une page d'application du magasin de jeu (choisi une application aléatoire). Donc, selon moi, il devrait juste donner ce qui est entre les balises div (c'est-à-dire la description) mais cela n'arrive pas. Je donne tout à partir du premier motif et continue jusqu'à la fin de la page en ignorant complètement entre les deux. Quelqu'un sait ce qui se passe ?!

Et je vérifie la longueur de la liste renvoyée, il est juste 1.

+0

pat =

.*
ce fut le modèle utilisé – user3772366

+0

dont vous avez besoin pour échapper aux guillemets doubles et utiliser le modificateur 's' pour faire point pour correspondre à une nouvelle ligne . –

Répondre

0

Tout d'abord, do not parse HTML with regex, utilisez un outil spécialisé - analyseur HTML. Par exemple, BeautifulSoup:

from bs4 import BeautifulSoup 

data = """ 
<div> 
    <div class="id-app-orig-desc"> 
     Do not try to get me with a regex, please. 
    </div> 
</div> 
""" 

soup = BeautifulSoup(data) 
print soup.find('div', {'class': 'id-app-orig-desc'}).text.strip() 

Prints:

Do not try to get me with a regex, please. 
+0

Fonctionne ... merci! – user3772366

Questions connexes