Python的正则表达式:从一个字符串

我是新来的正则表达式获取货币数字,我试图用re.findall提取货币般的数字(整数或1漂浮或2DP)从形式的字符串:Python的正则表达式:从一个字符串

'1000 - 2000' , '1000 -', '1000.4' 

我一直在努力寻找一个正则表达式模式,让我从字符串的所有数字提取到一个单独的列表,并希望在这个问题上的任何帮助。

例如,

import re 

pattern = '^\d*[.,]?\d*$'

temp = ['1000.5 - 2000.55']

strings = re.findall('^\d*[.,]?\d*$', temp[0])

输出我得到的是一个空列表,[]

我想获得

strings = ['1000.5','2000.55'] 

,然后想将它们转换为浮动与

nums = [float(i) for i in strings] 

回答:

import re 

temp = ['1000.5 - 2000.55']

strings = re.findall('\d+(?:[.,]\d*)?', temp[0])

nums = [float(i) for i in strings]

print(nums) # [1000.5, 2000.55]

demo

回答:

你可以用[0-9.]+

import re 

pattern=r'[0-9.]+'

temp = ['1000.5 - 2000.55']

for i in temp:

print(list(map(lambda x:float(x),re.findall(pattern,i))))

输出:

[1000.5, 2000.55] 

你也可以做一个行:

print([list(map(lambda x:float(x),re.findall(pattern,i))) for i in temp][0]) 

输出:

[1000.5, 2000.55] 

回答:

你可以试试这个:

import re 

temp = ['1000.5 - 2000.55']

final_data = map(float, re.findall('\d+\.\d+|\d+', temp[0]))

输出:

[1000.5, 2000.55] 

以上是 Python的正则表达式:从一个字符串 的全部内容, 来源链接: utcz.com/qa/266970.html

回到顶部