正则表达式如何在匹配模式中打印两个中的一个

时间:2012-06-22 08:27:38

标签: pattern-matching mt940

我的正则表达式有问题。 我正在编写一个与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 个答案:

答案 0 :(得分: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')]