Информация об изменениях

Сообщение python3 - неожиданное поведение re.findall от 26.11.2020 8:58

Изменено 26.11.2020 9:54 ioctl

python3 - неожиоданное поведение re.findall
# если использовать при токенизации \d+ - все ОК
re.findall(r'[()+\-*/]|\d+', '12*(15+5*2)/3+(6/2+8)')
['12', '*', '(', '15', '+', '5', '*', '2', ')', '/', '3', '+', '(', '6', '/', '2', '+', '8', ')']
# если использовать при токенизации (\d+) - пропадают операции
re.findall(r'[()+\-*/]|(\d+)', '12*(5+5*2)/3+(6/2+8)')
['12', '', '', '5', '', '5', '', '2', '', '', '3', '', '', '6', '', '2', '', '8', '']
python3 - неожиданное поведение re.findall
# если использовать при токенизации \d+ - все ОК
re.findall(r'[()+\-*/]|\d+', '12*(15+5*2)/3+(6/2+8)')
['12', '*', '(', '15', '+', '5', '*', '2', ')', '/', '3', '+', '(', '6', '/', '2', '+', '8', ')']
# если использовать при токенизации (\d+) - пропадают операции
re.findall(r'[()+\-*/]|(\d+)', '12*(5+5*2)/3+(6/2+8)')
['12', '', '', '5', '', '5', '', '2', '', '', '3', '', '', '6', '', '2', '', '8', '']