Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 捕获数字之间有空格的数字并删除该空格_Python_Regex - Fatal编程技术网

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

Python 捕获数字之间有空格的数字并删除该空格,python,regex,Python,Regex,这可能是一个愚蠢的问题,但我找不到一个好办法来解决它。 我想捕获一些字符串中的数字,这些字符串在每组3位数字之间包含一个空格。例如“45000欧元” 我可以通过一些正则表达式操作轻松捕获数字,但我无法直接删除空白,即我得到的是“45000”而不是“45000” 返回: ['35 000', '45 000'] 虽然我直接想要: ['35000', '45000'] 当然,在那之后,我可以使用列表理解来删除每个数字的空白,但是使用正则表达式应该有一个更直接的解决方案,不是吗?我试着和未捕获的组

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

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

返回:

['35 000', '45 000']
虽然我直接想要:

['35000', '45000']
当然,在那之后,我可以使用列表理解来删除每个数字的空白,但是使用正则表达式应该有一个更直接的解决方案,不是吗?我试着和未捕获的组一起玩或者四处看看,但没有成功(要么留下空白,要么数字被截断成两个)


感谢您的帮助

此表达式可能会:

(?<=\d)\s+(?=\d)
输出
如果要探索/简化/修改该表达式,请在的右上面板中进行说明

哦,你编辑了你的答案,很抱歉我没有看到新版本!现在工作很好,我确认列表;-)谢谢你的帮助和快速回答
(?<=\d)\s+(?=\d)
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']