Я собираю довольно сложное регулярное выражение. Одна часть выражения соответствует строкам, таким как "+ a", "-57" и т.д. A + или a, за которым следует любое количество букв или цифр. Я хочу совместить 0 или более строк, соответствующих этому шаблону.
Это выражение, которое я придумал:
([\+-][a-zA-Z0-9]+)*
Если бы я искал строку '-56 + a', используя этот шаблон, я бы ожидал получить два совпадения:
+ a и -56
Однако, я получаю только последнее совпадение:
>>> m = re.match("([\+-][a-zA-Z0-9]+)*", '-56+a')
>>> m.groups()
('+a',)
Посмотрев на документы python, я вижу следующее:
Если группа соответствует несколько раз, доступно только последнее совпадение:
>>> m = re.match(r"(..)+", "a1b2c3") # Matches 3 times. >>> m.group(1) # Returns only the last match. 'c3'
Итак, мой вопрос: как вы получаете доступ к нескольким групповым совпадениям?
Заранее благодарим за помощь.
Tom