Python regex表示美元金额,包括逗号和小数

2024-10-01 09:29:33 发布

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

我是python新手,我正在编写一段代码,需要获取一段文本并删除任何不是一美元的内容。例如,数字两千可以表示为20002000.002000和2k。我试图用一个正则表达式替换来实现这一点。在

现在我有:

f=re.sub([0-9]+?(,[0-9])*?[0-9]+?(.[0-9])*?[TtBbMmKk],"",f)

虽然我知道这是完全错误的,不能编译,但我还不够熟练,不知道该怎么做。谁能给我一些指导吗?谢谢!在


Tags: 代码文本re内容错误数字指导新手
2条回答

正则表达式需要放入Python字符串中:

f=re.sub(r"[0-9]+?(,[0-9])*?[0-9]+?(.[0-9])*?[TtBbMmKk]","",f)

字符串上的r前缀使其成为原始字符串文本。这将导致字符串中的所有反斜杠都按字面解释,这意味着您不需要在正则表达式中使用反斜杠(例如,r'\w'来匹配单词字符而不是'\\w')。在

所以现在您至少应该能够运行这段代码并测试正则表达式,我不确定行为是否正是您想要的。在

试试看:

import re
blockOfText = 'two thousand may be represented as 2000 2000.00 2,000 and 2k'
' '.join([ ''.join(x[0]) for x in re.findall(r'(\$?\d+([,\.]\d+)?k?)', blockOfText) ])

这将获得一个新的文本字符串,如果需要,可以将其分配给blockOfText,从而有效地删除任何不是美元金额的内容。在

相关问题 更多 >