2014-01-18 4 views
0

Я пытаюсь разобрать что-то в Python, где у меня есть строка, число, а затем неопределенное количество строк после номера. Я бы хотел, чтобы все остальные строки (в данном случае «D e») были помещены в одну группу для последующей обработки. Это код, который у меня есть:Захват нескольких слов в группе

m = re.match(r"(\w+) (\w+) (*)", "de 2166 D e") 

Что я должен делать, чтобы создать группу «D e»?

+2

Пример текста поможет получить точный ответ на ваш вопрос. – MElliott

ответ

1

Код не указан .. (. соответствует любому символу, кроме символа новой строки)

>>> m = re.match(r"(\w+) (\w+) (.*)", "de 2166 D e") 
    #       ^
>>> m.groups() 
('de', '2166', 'D e') 

Если вы хотите извлечь только 3-й группы, используйте MatchObject.group:

>>> m.group(3) 
'D e' 

EDIT предложенный Джо Льюис:

Используйте следующее регулярное выражение, если вы хотите принимать только цифры для второй группы. (\w ->\d)

r"(\w+) (\d+) (.*)" 
#  ^
Смежные вопросы