我正在尝试解析文件中包含的一些数据:
>in:12 out:8 John
>in:20 out:12 Fred
>in:8 out:2 Danny
我想找到最大值in
,并找到最大值in
(弗雷德在我的例子中)。
试试这个
>in:(\d+) out:\d+ (.*)
第 1 组将包含分数,第 2 组包含名称
您仍然需要在 python 代码中过滤第 1 组的最大值才能获得名称,因为这不是正则表达式的用途。
我不是 python 程序员,但这是一个好的开始
for match in re.finditer(r">in:(\d+) out:\d+ (.*)", subject):
# match start: match.start()
# match end (exclusive): match.end()
# matched text: match.group()
这是一种非标准的数据格式。因此,您必须编写一个非标准解析器(更好的主意是使用像 JSON 这样的标准交换格式并使用标准库中的解析器)。ID
Person
类in
out
Person
Person
从名为persons
.in
:persons_sorted = sorted(persons, key=lambda p: p.in)
max_in_person = persons_sorted[-1]