3

我是 python 新手,我有一个看起来像这样的字符串

Temp = "', '/1412311.2121\n"

我想要的输出只是得到数字和小数本身..所以我在寻找

1412311.2121 

作为输出.. 试图摆脱字符串中的 ', '/\n .. 我试过 Temp.strip("\n") 和 Temp.rstrip("\n") 试图删除 \n但我似乎仍然留在我的弦上。:/... 有人有什么想法吗?谢谢你的帮助。

4

3 回答 3

18

字符串是不可变的。string.strip()不会改变string,它是一个返回值的函数。你需要做:

Temp = Temp.strip()

另请注意,strip()不带任何参数的调用会导致它删除所有空白字符,包括\n

正如 stalk 所说,您可以通过调用strip("',/\n").Temp

于 2012-05-25T16:05:23.277 回答
5

如果数据像你显示的那样,用非数字数据从右到左包装的数字,你可以使用一个非常简单的正则表达式:

g = re.search('[0-9.]+', s)  # capture the inner number only
print g.group(0)
于 2012-05-25T16:11:10.097 回答
4

我会使用正则表达式来做到这一点:

In [8]: s = "', '/1412311.2121\n"

In [9]: re.findall(r'([+-]?\d+(?:\.\d+)?(?:[eE][+-]\d+)?)', s)
Out[9]: ['1412311.2121']

这将返回在字符串中找到的所有浮点数的列表。

于 2012-05-25T16:03:29.990 回答