因此,我能够开发代码以从字符串中提取浮点数,但不能从字符串中提取数字。
这是字符串 string =“我喜欢float 33.0;除了3,我不喜欢其他任何数字。\ n”
import re
re.findall('\d\d\D\d',s3)
这给了我['33.0']
但是它没有给出3
我想要它吐出['33.0,'3']
(即,一组括号用逗号分隔;而不是每组两组括号)
我不希望只有33、3或33.0和3.0或其任何变体。就像我说的那样。
答案 0 :(得分:2)
很明显,您要投影到第一个元素。
import re
def first(xs):
return xs[0]
def findall1(regex, s):
return list(map(first, re.findall(regex, s)))
string = "I like float 33.0; I don't like any other digit but for 3.\n"
print(findall1(r'(\d+(\.\d+)?)', string))
结果是:
['33.0', '3']