首页 > 解决方案 > 删除数字,但如果它们是字符串的一部分,则不删除

问题描述

我想用 Python 删除文本中包含的数字。但我不想删除作为字符串一部分的数字。

例如,

strings = [ "There are 55 cars in 45trt avenue"

在这种情况下55应该删除,但不是45trt,应该保持不变

提前致谢,

标签: python-3.xnlpnumbers

解决方案


您可以尝试搜索被单词边界包围的数字:

inp = "There are 55 cars in 45trt avenue"
output = re.sub(r'\s*\b\d+\b\s*', ' ', inp).strip()
print(output)

这打印:

There are cars in 45trt avenue

这里的逻辑实际上是用一个空格替换,以确保生成的字符串仍然是正确间隔的。这为可能恰好出现在开头或结尾的数字打开了一个边缘案例,留下了额外的空间。为了解决这个问题,我们使用strip().


推荐阅读