1

テキストファイルにたくさんの行があります。たとえば、1行:

838: DEBUG, GD, Parameter(Player_Appearance_Model) = GaussianDistribution(0.28, 0.09)

等号 ("=") の後のすべての文字列を出力する方法を教えてください。たとえば、上記の場合、出力は「GaussianDistribution(0.28, 0.09)」になるはずです。

行を分割して最後のインデックスを出力しようとしましたが、「0.09)」という回答が得られましたが、これはもちろん正しくありません。

4

3 に答える 3

8

正規表現は必要ありません。それだけ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)'
于 2013-08-28T07:22:26.830 に答える
5

使用できますstr.partition()

>>> s = "838: DEBUG, GD, Parameter(Player_Appearance_Model) = GaussianDistribution(0.28, 0.09)"
>>> print s.partition('= ')[2]
GaussianDistribution(0.28, 0.09)

これは、必要なデータに別の等号が含まれている場合に便利です。

于 2013-08-28T07:24:37.370 に答える
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'
于 2013-08-28T08:26:35.723 に答える