我正在尝试解析文件中包含的一些数据:
>in:12 out:8 John
>in:20 out:12 Fred
>in:8 out:2 Danny
我想找到最大in
值,并找到最大值为in
的人(在我的示例中为Fred)。
答案 0 :(得分:2)
试试这个
>in:(\d+) out:\d+ (.*)
第1组将包含in分数,第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()
答案 1 :(得分:2)
这是你在那里的非标准数据格式。因此,您需要编写一个非标准的解析器(更好的想法是使用像JSON这样的标准交换格式并使用标准库中的解析器)。我
Person
课程,例如in
和out
属性Person
Person
创建persons
的列表。in
:persons_sorted = sorted(persons, key=lambda p: p.in)
max_in_person = persons_sorted[-1]