Python регулягка(все значения)

TrastMan

Постоялец
Регистрация
13 Ноя 2007
Сообщения
117
Реакции
4
print re.compile("(регулярка)", text).group(0) выдает только одно найденное значение, а их несколько. как вывести список?
 
Код:
>>> m = re.match(r"(\w+) (\w+)", "Isaac Newton, physicist")
>>> m.group(0)      # The entire match
'Isaac Newton'
>>> m.group(1)      # The first parenthesized subgroup.
'Isaac'
>>> m.group(2)      # The second parenthesized subgroup.
'Newton'
>>> m.group(1, 2)    # Multiple arguments give us a tuple.
('Isaac', 'Newton')

Для просмотра ссылки Войди или Зарегистрируйся
все просто )
 
Лучше уж так:
Код:
import re
m = re.match(r"(\w+) (\w+)", "Isaac Newton, physicist")
for a in m.groups():
      print(a)
 
Лучше уж так:
Код:
import re
m = re.match(r"(\w+) (\w+)", "Isaac Newton, physicist")
for a in m.groups():
      print(a)
Да я пробовал так и еще несколько вариантов...
Вот это получается:
Код:
TypeError: match() takes at least 2 arguments (1 given)
 
Да я пробовал так и еще несколько вариантов...
Вот это получается:
Код:
TypeError: match() takes at least 2 arguments (1 given)
:mad: А перевести? Метод match принимает два аргумента: шаблон регулярки и строку. Примеры, что выше - рабочие. И кстати, когда не работает - нужно слать код, а не ошибки.
 
Ага, перевел. Практически сразу. Это не помогло.

В общем решается:
Код:
g = Grab()
g.go('domain')
rex = re.compile(r'регулярка')
for значение in rex.findall(тело):
    print значение
Ну я и запарился с этим...(
Чуть посложнее парсер и можно мозг сломать на мелочах.
 
RegExBuddy RegExMagic - крутые утилиты для регулярок, там выадает на выходе готовые функции для разных языков, есть и питон
 
Почему бы не просто re.findall(regex, string) - Возвратит список
 
Назад
Сверху