python中搜索模式内的变量

时间:2012-02-21 11:38:23

标签: python search variables design-patterns

我有来自BeautifulSoup的汤,我有一个键列表(key_image),我想在另一个列表中引入值。

    soup = BeautifulSoup(stringapplet)
    key_image = ['archivo=', 'imagen=', 'image=', 'imaxe=', 'arquivo=']
    imageslist = []

这样我就可以得到 archivo 的值列表:

    patron = re.compile(r"archivo='([\w\./]+)'")
    for tag in soup.findAll('param'):
        if patron.search(tag['value']):
            imageslist.append(patron.search(tag['value']).group(1))

很好,但是......我需要在 imageslist 中搜索“patrons”,如 archivo imagen imaxe ...等等,所以我想我需要在搜索模式中引入一个变量,然后我这样做:

    for x in key_image:
        if string.find(stringapplet, x) != -1:
            expression = 'r' + '"' + x + "'" + '([\w\./]+)' + "'" + '"'
            patron = re.compile(expression)
            for tag in soup.findAll('param'):
                if patron.search(tag['value']):
                    imageslist.append(patron.search(tag['value']).group(1))

imageslist 为空,因为永远不会加载最后一行。 ¿?

我做 patron.pattern 我得到 r“archivo ='([\ w ./] +)'”也是,所以出了什么问题?

如何搜索所有key_images值的所有值?

感谢。

1 个答案:

答案 0 :(得分:1)

for x in key_image:
    if string.find(stringapplet, x) != -1:
        expression = r"%s'([\w\./]+)'" % x
        patron = re.compile(expression)
        for tag in soup.findAll('param'):
            result = patron.search(tag['value'])
            if result:
                imageslist.append(result.group(1))