从python的字符串中提取数值

时间:2019-07-17 13:45:17

标签: python regex replace split

我有一个字符串,其中包含用引号引起来的数字值。我需要从其中删除数字值,还需要删除[]

示例字符串:texts = ['13007807', '13007779']

texts = ['13007807', '13007779'] 
texts.replace("'", "")
texts..strip("'")

print texts 

# this will return ['13007807', '13007779']

所以我需要从字符串中提取的是:

13007807
13007779

3 个答案:

答案 0 :(得分:1)

您可以使用*解压运算符:

texts = ['13007807', '13007779']
print (*texts)

输出:

13007807 13007779

如果有:

data = "['13007807', '13007779']"
print (*eval(data))

输出:

13007807 13007779

答案 1 :(得分:1)

根据您的答复,如果您的texts变量是一个字符串,则可以使用正则表达式:

import re
text = "['13007807', '13007779']"
regex=r"\['(\d+)', '(\d+)'\]"
values=re.search(regex, text)
if values:
    value1=int(values.group(1))
    value2=int(values.group(2))

输出:

value1 = 13007807

value2 = 13007779

答案 2 :(得分:0)

最简单的方法是使用map并在list中环绕

list(map(int,texts))

输出

[13007807, 13007779]

如果您输入的数据的格式为data = "['13007807', '13007779']",那么

import re
data = "['13007807', '13007779']"
list(map(int, re.findall('(\d+)',data)))

list(map(int, eval(data)))