我是python的真正初学者,但我听说在字符串操作中应该很容易。你能告诉我怎么做:
我有一个字符串:
str = "[someString xpos=1024.0 ypos=768.0 someotherString]"
我想从该字符串中提取两个浮点数,以便我不能将它们用作函数的参数。
我可以这样轻松地做到这一点吗? 在我看来,它看起来像这样:
*xpos=____.__*ypos=____.___*
其中:
*: Any char
_: float number, maybe with variable lenght
(对不起,我的英语非常糟糕,是否有正式表达的德语手册?)
问候
答案 0 :(得分:6)
如果您的xpos
或ypos
为否定,则可以使用此方法:
x, y = map(float, re.findall(r'[+-]?[0-9.]+', str))
答案 1 :(得分:3)
答案 2 :(得分:1)
>>> import re
>>> s = "[someString xpos=1024.0 ypos=768.0 someotherString]"
>>> results = re.findall('pos=([\d.]+)', s)
>>> results
['1024.0', '768.0']
>>> map(float, results)
[1024.0, 768.0]
答案 3 :(得分:0)
您可以使用re模块。
import re
matchobject = re.search(string, "[.+xpos=(.+)\sypos=(.+)\s.+]")
xpos = matchobject.group(1)
ypos = matchobject.group(2)
此处'。+'表示任何可变长度的字符集,直到您达到指定的下一个模式。括号用于对xpos和ypos值进行分组,以便稍后提取它们。
它会将xpos和ypos作为字符串返回,您可以转换为float或int。
xpos = int(xpos)
ypos = float(ypos)