提取下面字符串中的数字
flag = [0.9969990253448486, 0.002657678909599781, 0.00013719421986024827, 0.00020613073138520122]
上面的字符串中,包括一对方括号和几个逗号,现在要去掉方括号和逗号然后把这四个数字存到数组中。
1.去方括号
import re
flag = re.findall(r'\[(.*?)\]',flag)#返回list
print(flag)
打印出来结果:(打印的list会自动带上方括号,引号里面是一个字符串)
解释一下:
(1)正则匹配串前加了r就是为了使得里面的特殊符号不用写反斜杠了。
(2)[ ]具有去特殊符号的作用,也就是说[(]里的(只是平凡的括号
(3)正则匹配串里的()是为了提取整个正则串中符合括号里的正则的内容
(4).是为了表示除了换行符的任一字符。*克林闭包,出现0次或无限次。
(5)加了?是最小匹配,不加是贪婪匹配。
2.去逗号
flag = flag[0]
flag = flag.split(',')
print(flag)
print(type(flag))
因为去方括号后返回的是一个只有一个字符串的列表类型,所以先取那个字符串,然后再去掉逗号,split()函数返回的同样是一个列表类型