Это текст с разделителями, но я хочу его проанализировать w/regex.Python re.findall(), чтобы получить все сопоставленные группы
Вторая колонка и последующие секунды или миллисекунды.
>>> import re
>>> s = '''aaa
bbb|30s
ccc|500ms|1s'''
>>> re.findall(r'(\w+)(?:\|(\d+(?:s|ms)))?(?:\|(\d+(?:s|ms)))?', s)
Выход (ожидаемый ответ):
[('aaa', '', ''), ('bbb', '30s', ''), ('ccc', '500ms', '1s')]
Я хотел сделать эту модель короче, используя кванторы как * или {х, у}.
Так что я сделал:
>>> re.findall(r'(\w+)(?:(?:\|(\d+(?:s|ms)))*)', cmdstr)
[('aaa', ''), ('bbb', '30s'), ('ccc', '500ms')] # WRONG
мне не удалось.
Как это сделать с регулярным выражением?
У меня есть. Спасибо. – ijmo