Онлайн тестировщик (regex101) и результат работы программы выдают
разные группы в ответе с одной и той же регуляркой.
Суть задачи: разбивка строки рецепта на ингредиент / количество / меру / и "хвостик"
sPattern = re.compile('''([a-z \-\,\']*) # для строк типа salt and pepper to taste
((?:\d+\ +)(?:and [0-9\/]+)?| # для записей c дробью (1 and 3/4 ...)
[\d\.\,\-]+)\s? # диапазон, допустимо с точкой (1,5-2...; 4-8...)
([\w\ \%\-\'\"]+) # мера, при наличии; ингредиент в простых продуктах
\(?([0-9\.\,\ ]+g?)?\)? # (эквивалент в граммах, при наличии, в скобках)
(.*) # ингредиент или пустая строка для простых продуктов
(?:( or .+)|\((.+)\)|\, (.+))? # довесок после запятой/скобок/или
''', re.IGNORECASE | re.VERBOSE)
Результат тестировщика, 5 групп:
1. [0-0] ``
2. [0-9] `1 and 1/3`
3. [10-15] `cups `
4. [16-20] `225g`
5. [21-53] ` frozen* blueberries, not thawed`
Результат программы, 3 группы (не считая пустых строк):
'1 and', '1', '/3 cups (225g) frozen* blueberries, not thawed'
Почему так получается?
Посоветуйте, плиз, корректный тестировщик, разбивающий на группы.