Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/18.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 Regex:我怎样才能捕捉到带有空格的大数字?_Python_Regex_Recursion_Regex Recursion - Fatal编程技术网

Python Regex:我怎样才能捕捉到带有空格的大数字?

Python Regex:我怎样才能捕捉到带有空格的大数字?,python,regex,recursion,regex-recursion,Python,Regex,Recursion,Regex Recursion,我正在尝试使用Python正则表达式从字符串中捕获所有数字。我所说的数字是指整数和浮点数(使用、或)。 我设法用这个正则表达式完成了它:([0-9]+[\,[124;\.][0-9]+[0-9]+) 但我有一个问题,我需要它来匹配大数字和其中的空格。我的意思是20000或5000000。这些数字可能非常大,有很多空间。我不知道有多少。但是数字之间总是有一个空格,不再有了。例如:20 30=这将是两个不同的数字 我想我需要某种递归模式(?R),但我不知道如何使用它 有人能帮忙吗?:) 重新导入 编

我正在尝试使用Python正则表达式从字符串中捕获所有数字。我所说的数字是指整数和浮点数(使用
)。 我设法用这个正则表达式完成了它:
([0-9]+[\,[124;\.][0-9]+[0-9]+)

但我有一个问题,我需要它来匹配大数字和其中的空格。我的意思是
20000
5000000
。这些数字可能非常大,有很多空间。我不知道有多少。但是数字之间总是有一个空格,不再有了。例如:
20 30
=这将是两个不同的数字

我想我需要某种递归模式
(?R)
,但我不知道如何使用它

有人能帮忙吗?:)

重新导入
编号='20 300 4 100 400 50'
res=re.findall(r'(\d*\s*),编号)
res=''.join(res.split)('')
打印(列表(映射(lambda x:int(x.replace('',)),res)))
-输出


[20300410040050]
您可以使用如下模式

(?
看

细节

  • (?-当前位置左侧不允许有数字或数字加逗号或句点
  • \d{1,3}
    -一位、两位或三位数字
  • (?:\s\d{3})*
    -零个或多个空格和三位数字序列
  • (?:[,.]\d+)
    -可选出现
    ,然后出现一个或多个数字
在中,您可以使用
re.findall

重新导入
text=“5000、6123456345和6123456.345……我的意思是20000或500000。例如:2030”

打印(关于findall(r')(?这不适用于OP中由多个空格分隔的多个数字的情况,例如,
number='20 3000 400
应给出
('20','3000','400'))
但将给出
'203000400'
您需要进一步增强,以涵盖OP的长数字情况,数字由一个空格分隔,并分组为三元组,例如
数字='20 300 4 100 400 50'
应给出
['20 300','4 100','4 00','50']
与当前给出
['20','300','4','100','400','50']
(尽管我怀疑
['20300','4100','400','50']
也可以接受。)