使用正则表达式提取带点和逗号的数字

2024-10-02 22:36:56 发布

您现在位置:Python中文网/ 问答频道 /正文

我读了很多文章,试图解释如何在Python中使用regex,但我还是一点都不懂。即使是regex wiki和{a2}也帮不了我。我还是有点困惑:P

我有下面的绳子:

string = "|C195|1|Base de Cálculo ST: 2.608,24 - Valor da ST: 163,66|"

我试图只提取2.608,24和{},使用:

^{pr2}$

然而,myprint st_values的输出是:

['2.608','163,66']

相反,我希望是这样

['2.608,24','163,66']

我不想要

['195', '1', '2.608,24','163,66']

如何使用正则表达式提取参数?在


Tags: a2basestringwiki文章deregexda
3条回答

我建议:

\b\d{1,3}(?:\.\d{3})*,\d+\b

这是一个demo

这里有一个IDEONE code demo

^{pr2}$

试试这个(这个正则表达式还假设像1,23这样的字符串是匹配的)

>>> re.findall("\d+(?:\.\d+)?,\d+", string)
['2.608,24', '163,66']

Regex demo and Explanation

如果要从倒数第二列/字段中提取数字,可以执行以下操作:

 In: re.findall(r"[0-9,.]+",string.split('|')[-2])      
Out: ['2.608,24', '163,66']

否则,如果只对regex执行此操作,并且在另一列中有类似的数字,则无法将它们过滤掉。在

相关问题 更多 >