2024-10-01 09:29:33 发布
网友
我是python新手,我正在编写一段代码,需要获取一段文本并删除任何不是一美元的内容。例如,数字两千可以表示为20002000.002000和2k。我试图用一个正则表达式替换来实现这一点。在
现在我有:
f=re.sub([0-9]+?(,[0-9])*?[0-9]+?(.[0-9])*?[TtBbMmKk],"",f)
虽然我知道这是完全错误的,不能编译,但我还不够熟练,不知道该怎么做。谁能给我一些指导吗?谢谢!在
正则表达式需要放入Python字符串中:
f=re.sub(r"[0-9]+?(,[0-9])*?[0-9]+?(.[0-9])*?[TtBbMmKk]","",f)
字符串上的r前缀使其成为原始字符串文本。这将导致字符串中的所有反斜杠都按字面解释,这意味着您不需要在正则表达式中使用反斜杠(例如,r'\w'来匹配单词字符而不是'\\w')。在
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,从而有效地删除任何不是美元金额的内容。在
blockOfText
正则表达式需要放入Python字符串中:
字符串上的
r
前缀使其成为原始字符串文本。这将导致字符串中的所有反斜杠都按字面解释,这意味着您不需要在正则表达式中使用反斜杠(例如,r'\w'
来匹配单词字符而不是'\\w'
)。在所以现在您至少应该能够运行这段代码并测试正则表达式,我不确定行为是否正是您想要的。在
试试看:
这将获得一个新的文本字符串,如果需要,可以将其分配给
blockOfText
,从而有效地删除任何不是美元金额的内容。在相关问题 更多 >
编程相关推荐