Регулярное выражение, как напечатать одно из двух в соответствии шаблону
У меня проблема с регулярными выражениями. Я пишу небольшую программу, которая соответствует строке из файла банковской выписки mt940. У меня есть простая строка, как эта:
:60F:C120613PLN245265,82
И регулярное выражение:
([C|D]{1})|([0-9]{6})|([A-Z]{3})|([0-9]+(\,[0-9]{2}))
это возвращает меня
C
120613
PLN
143783
4,82
Но последние две строки разделены, и я бы получил не разделенные последние две строки, например:
C
120613
PLN
1437834,82
Я думаю, что последние строки имеют 6 цифр перед ",", что соответствует второму шаблону во всем моем шаблоне.
Что я могу сделать, чтобы вернуть последние два слова не разделенными?
1 ответ
Решение
Этот шаблон работает для меня:
pattern "([C|D]{1})([0-9]{6})([A-Z]{3})([0-9]+,[0-9]{2})"
Я проверил это в Python:
re.findall(pattern, ":60F:C120613PLN245265,82") // [('C', '120613', 'PLN', '245265,82')]