或者条件在单一Regex的最后一句话不工作python



我正在将pdf银行对账单转换为文本文件,逐行读取文本文件,并使用regex将交易转换为JSON格式。现在,文本中的交易——一些交易的金额在同一行,而另一行的金额在不同的行。想要编写一个能够区分两行的正则表达式。下面给出了输入字符串,我一个接一个地得到。

15/08/2019       UPI/922722731244/PAYMENT
01/08/2019       MAB CHARGES FOR JUN19                         4.94

尝试的正则表达式是

s*(?P<'+DATE_STR+'>d{2}/d{2}/d{4})s+(?P<'+DESCRIPTION_STR+'>[sSdDwW]*)s(?P<'+AMOUNT_STR+'>([d.-]+))

我希望AMUNT_STR的输出处于或条件下,结果应该是这样的。

我想要一个应用于第一条语句的正则表达式,其输出如下DATE_STR='15/08/2019'DESCRIPTION_STR='UPI/922722731244/PAYMENT'(用于第一个字符串(
并且当应用于第二个语句时,将输出作为

DATE_STR='01/08/2019'DESCRIPTION_STR='6月19日的单抗费用'AMOUNT_STR='%4.94'

终于得到了解决方案。在正则表达式中,AMUNT_STR正则表达式的条件是最后用"."(点(检查数字,因为数量可以包含","(逗号(,所以我使用的正则表达式是

\s*(?p<'+DATE_STR+'>\d{2}/\d{2}(\s(?p>'+DESCRIPTION_STR+'>(.?((?=\d+\,\d*.\d+|$(((?p&&lt;'+AMOUNT_STR+'>[d+\,\d.\d+(*

最新更新