如何从字符串(python)中获取关键字后面的字符?

How to get the characters following the keyword from a string (python)?

有文字,例如:

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

我需要从中获取“第一秒”,它总是在参数之后。我将文本作为字符串获取,它可以有多个参数,我只需要列表中的最后一个。

虽然工作版本看起来像这样:

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

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

更新: 全文可能如下所示:

[20:00] User: Error [21:00] User: Auth [21:30] 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: ErrorNow [20: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: Params: first fifth [22:00] User: ErrorNow

我需要列表中的最后一个“参数”,在本例中为“第一个五分之一”

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

>>> 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 '

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