关于正则表达式中的整数和浮点数的问题

时间:2019-03-31 01:07:43

标签: python-3.x

因此,我能够开发代码以从字符串中提取浮点数,但不能从字符串中提取数字。

这是字符串 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或其任何变体。就像我说的那样。

1 个答案:

答案 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']