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