gpt4 book ai didi

python - 捕获数字之间有空格的数字并删除该空格

转载 作者:行者123 更新时间:2023-12-01 00:45:15 26 4
gpt4 key购买 nike

这可能是一个愚蠢的问题,但我找不到解决它的好方法。我想捕获一些字符串中的数字,其中每组 3 位数字之间包含空格。例如“45 000 欧元”。

我可以通过一些正则表达式操作轻松捕获数字,但我无法直接删除空格,即我得到“45 000”而不是“45000”。

import re
digits = re.findall(r"(\d+\s?\d*)", "Salary between 35 000 € and 45 000 €")
print(digits)

返回:

['35 000', '45 000']

虽然我直接想要:

['35000', '45000']

当然,之后我可以使用列表理解来删除每个数字的空格,但应该有一个更直接的正则表达式解决方案,不是吗?我尝试使用非捕获组或环顾四周,但没有成功(要么留下空白,要么数字被截断为两部分)。

感谢您的帮助

最佳答案

这个表达式可能会这样做:

(?<=\d)\s+(?=\d)

使用 re.sub,然后我们将执行一个简单的 re.findall

import re

test_str = "Salary between 35 000 € and 45 000 € 35 000 000 0 0 0 €"

print(re.findall(r"(\d+)", re.sub(r"(?<=\d)\s+(?=\d)", "", test_str)))

输出

['35000', '45000', '35000000000']

该表达式在 this demo 的右上角面板中进行了解释如果您想探索/简化/修改它。

关于python - 捕获数字之间有空格的数字并删除该空格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57030332/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com