2016-05-12 5 views
0

Ich schrieb Code wie folgt:Mit findall Funktion im Modul re für Python

>>> import re 
>>> url='<a href="C:\python34\koala.jpg">jpg</a><font size="10">' 
>>> print(re.findall('href="(.*?)"><',url)) 

außer I Ergebnis

C:\python34\koala.jpg">jpg</a 

Aber ich kann nur dieses Ergebnis sehen:

[] 

warum passiert das?

Ich wusste nicht, warum ich dieses Ergebnis in der Konsole habe.
Bitte helfen Sie mir.
Ich benutze Python 3.4 und Windows8.1.

+0

Warum würden Sie erwarten, dass es so, wenn der Erfassungsgruppe in Anführungszeichen ist? – AKS

+0

Verwenden Sie Regex nie, um HTML zu analysieren: http://stackoverflow.com/questions/590747/using-regular-expressions-to-parse-html-why-not – Garf365

Antwort

2

Sind Sie sicher, dass Sie auch den >jpg</a Teil möchten. Wenn ja, dann können Sie diese verwenden:

>>> re.findall('href="([^"]*">[^<]*</a)',url) 
['C:\\python34\\koala.jpg">jpg</a'] 

Wenn Sie nur die href Attribute Wert benötigen, dann können Sie verwenden:

>>> re.findall('href="([^"]*")',url) 
['C:\\python34\\koala.jpg"']