如何从字符串(python)获得关键字后的字符?



有一个文本,例如:

[20:00] User: Error [21:00] User: Auth [21:30] User: Params: first second [22:00] User: ErrorNow

我需要得到"first; second"它总是出现在参数之后。我得到的文本是一个字符串,它可以有几个参数,我只需要列表中的最后一个。

而工作版本看起来像这样:

par_ind = text.rfind('Params')
text[par_ind:par_ind+13]

但是主要的缺点是参数的数量可能会改变。告诉我一个更方便的解决办法。我在考虑把字符串转换成字典,但这似乎是个愚蠢的想法。我还能看什么?

乌利希期刊指南:全文可能像这样:

[20:00] User: Error [21:00] User: Params: first second [22:00] User: ErrorNow [20:00] User: Error [21:00] User: Auth [21:30] User: Params: first third [22:00] User: Error [21:00] User: Auth [21:30] User: Params: first fourth [22:00] User: ErrorNow [20:00] User: Error [21:00] User: Auth [21:30] User: Error: first fifth [22:00] User: Error [21:00] User: Auth [21:30] User: Params: first fifth [22:00] User: ErrorNow

我需要最后一个"Params"在列表中,在本例中是"first fifth">

这是使用正则表达式的好时机:

>>> import re
>>> text = """[20:00] User: Error [21:00] User: Auth [21:30] User: Params: first second [22:00] User: ErrorNow"""
>>> match = re.search(r'Params: (?P<params>[^[]+)[d', text)
>>> match.group('params')
'first second '

(您可能想要去掉尾随空格:match.group('params').strip()可以工作,或者相应地调整正则表达式。)

最新更新