我想使用一个re.sub来消除数字之间的空格。使用以下命令:
import re
print(re.sub('([0-9,.]) ([0-9,.])','\\1\\2',str("11 222")))
print(re.sub('([0-9,.]) ([0-9,.])','\\1\\2',str("11 222 33")))
print(re.sub('([0-9,.]) ([0-9,.])','\\1\\2',str("11 222 33 4")))
print(re.sub('([0-9,.]) ([0-9,.])','\\1\\2',str("11 222 33 4 55")))
print(re.sub('([0-9,.]) ([0-9,.])','\\1\\2',str("11 222 33 4 55 6")))
print(re.sub('([0-9,.]) ([0-9,.])','\\1\\2',str("11 222 33 4 55 6 77")))
但是,如果有多个连续数字,我只能删除空格:
11222
1122233
11222334
11222334 55
11222334 556
11222334 556 77
但是如何只删除一个数字也要删除空格,这样命令的结果就像
print(re.sub('([0-9,.]) ([0-9,.])','\\1\\2',str("11 222 33 4 55 6 77")))
将会
1122233455677
?
答案 0 :(得分:3)
尝试使用环顾四周方法来检测空格周围的数字:
print(re.sub('(?<=\\d) (?=\\d)','',str("11 222 33 4 55 6 77")))
1122233455677
这里的想法是针对每个空间,我们向后看并断言一个数字存在,而我们向前看并断言一个数字存在。
请注意,此答案不会删除字符串两端可能出现的空格,但是同样,这些空格不在数字之间。
答案 1 :(得分:0)
有几种表达方式可以理解数字。在这种情况下,我在ref中找到了最简单的代码。可以摆脱其他字符。
print(re.sub(r'\s','',str("11 222 33 4 55")))