Переменная внутри шаблона поиска в Python - PullRequest
0 голосов
/ 21 февраля 2012

У меня есть суп от 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 также искать "покровителей" вроде 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 Ответ

1 голос
/ 21 февраля 2012
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))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...