Python beautifulsoup vs re和使用regext搜索

Python beautifulsoup vs re和使用regext搜索,python,regex,search,beautifulsoup,Python,Regex,Search,Beautifulsoup,我使用urllib2.urlopen来获取像这样的站点的源代码。 我读取字节,然后使用beautifulsoup将代码标记为applet。 此代码包括以下行: <param name="G_00" value="espacio='E1' tipo='macro' expresi&oacute;n='dinamica/resorte'"> 问题是:使用1时,我得到了.txt文件(如果它存在的话)-我可以保证-但是使用2时,我查找word/word,我没有找到像dinamica

我使用urllib2.urlopen来获取像这样的站点的源代码。 我读取字节,然后使用beautifulsoup将代码标记为applet。 此代码包括以下行:

<param name="G_00" value="espacio='E1' tipo='macro' expresi&oacute;n='dinamica/resorte'">
问题是:使用1时,我得到了.txt文件(如果它存在的话)-我可以保证-但是使用2时,我查找word/word,我没有找到像dinamica/Restore这样的东西,wresult总是失败的,我需要捕获这些值

我的regexp坏了吗?。所有的问题都是如何用regexp表示单词/单词

我尝试了使用beautifulsoup进行搜索,但“宏”是内部值,我不知道如何捕获此标记,无论如何,re+搜索似乎做得很好…而右侧是:例如dinamica/Restore.txt,则1它可以工作,但没有扩展名


感谢您的时间。

对于暴力和愚蠢的解决方案感到抱歉,但是您应该更好地指定您的需求,以了解您可能要搜索的所有密钥。我个人认为这个解决方案不好。无论如何,请尝试:

import re

def brute_force_and_stupid(s, rex=re.compile(r"expresion='([a-zA-Z./]+)'")):
    s = s.replace('&oacute;', 'o')
    s = s.replace('ó', 'o')
    print s
    m = rex.search(s)
    if m:
        return m.group(1)
    return None

tag = "<param name=\"G_00\" value=\"espacio='E1' tipo='macro' expresi&oacute;n='dinamica/resorte'\">"
print tag
print brute_force_and_stupid(tag)
它打印在我的控制台上:

c:\tmp\___python\Antonio\so10295276>python a.py
<param name="G_00" value="espacio='E1' tipo='macro' expresi&oacute;n='dinamica/resorte'">
<param name="G_00" value="espacio='E1' tipo='macro' expresion='dinamica/resorte'">
dinamica/resorte
稍微好一点的解决方案,使用更复杂的正则表达式。注意这里的unicode字符串

import re

rex = re.compile(ur"expresi(o|ó|&oacute;)n='(?P<text>[a-zA-Z./]+)'")

tag = u"<param name=\"G_00\" value=\"espacio='E1' tipo='macro' expresi&oacute;n='dinamica/resorte'\">"
print tag

m = rex.search(tag)
if m:
    print m.group('text')
else:
    print None    
它打印:

c:\tmp\___python\Antonio\so10295276>python b.py
<param name="G_00" value="espacio='E1' tipo='macro' expresi&oacute;n='dinamica/resorte'">
dinamica/resorte
青年成就组织!,第二个想法是寻找?P[a-zA-Z./]+将用户和标签转换为unicode之前似乎工作得很好!。对不起,我的解释不好,谢谢你努力理解。是的,正则表达式会让人头疼。
c:\tmp\___python\Antonio\so10295276>python b.py
<param name="G_00" value="espacio='E1' tipo='macro' expresi&oacute;n='dinamica/resorte'">
dinamica/resorte