我在文本文件中有很多行。例如,一行:
838: DEBUG, GD, Parameter(Player_Appearance_Model) = GaussianDistribution(0.28, 0.09)
有人可以告诉我如何在等号(“=”)之后打印所有字符串。例如,在上述情况下,输出应为“GaussianDistribution(0.28,0.09)”。
我试图分割线并打印最后一个索引,但是,它给了我“0.09)”答案,这当然是不正确的。
答案 0 :(得分:7)
您不需要正则表达式,只需split()
:
>>> s = "838: DEBUG, GD, Parameter(Player_Appearance_Model) = GaussianDistribution(0.28, 0.09)"
>>> s.split(" = ")[1]
'GaussianDistribution(0.28, 0.09)'
或:
>>> s.split("=")[1].strip()
'GaussianDistribution(0.28, 0.09)'
答案 1 :(得分:4)
您可以使用str.partition()
:
>>> s = "838: DEBUG, GD, Parameter(Player_Appearance_Model) = GaussianDistribution(0.28, 0.09)"
>>> print s.partition('= ')[2]
GaussianDistribution(0.28, 0.09)
这很有用,因为你需要的数据还有另一个等号。
答案 2 :(得分:0)
您也可以使用:
def GetPart(s,part=1):
out = s.split('=')[part].strip() #only '=', spaces will be removed
return out
>>> s = 'abcd=efgh'
>>> GetPart(s)
>>> 'efgh'
>>> s = 'abcd= efgh' #note extra spaces
>>> GetPart(s)
>>> 'efgh'
>>> s = 'abcd = efgh ' #even more space before/after
>>> GetPart(s)
>>> 'efgh'
当然:
>>> s = 'abcd=efgh'
>>> GetPart(s,0) #first part
>>> 'abcd'