Регулярное выражение, как напечатать одно из двух в соответствии шаблону

У меня проблема с регулярными выражениями. Я пишу небольшую программу, которая соответствует строке из файла банковской выписки 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')]
Другие вопросы по тегам