gpt4 book ai didi

python - 使用 python re.findall 收集出席名单

转载 作者:行者123 更新时间:2023-12-04 09:55:24 25 4
gpt4 key购买 nike

关闭。这个问题需要更多focused .它目前不接受答案。












想改善这个问题吗?更新问题,使其仅关注一个问题 editing this post .

去年关闭。




Improve this question




在这里,我们有一个缩放聊天记录,我想从中获取 提取所有学生ID ,例如 38150002 和 ID所有者的姓名 (例如史密斯的例子)。

17:00:44     From Smith Example : 38150002 Smith Example
17:00:54 From Smith Example : 41050002 Smith Middle Example
17:01:04 From Smith Example : 37-191129 Smith One Example
17:01:12 From Smith Example : 31-086612 Smith Example
17:01:20 From Smith Example : 40-250233 Smith Example
17:01:33 From Smith Example : 38129055 Smith Example
17:01:39 From Smith Example : 38-129055 Smith Example Joe

我成功地使用 re.findall 提取了具有设置模式的学生 ID。
lst = re.findall('\d\d-\d+', ex) #for id like 40-250233

问题是 我如何提取名称 跟着学生证?

最佳答案

假设你给出的确切结构,你可以使用这个正则表达式:

\d\d:\d\d:\d\d.*:\s*([\d-]+)\s*(.*)$

我将 ID 和名称放在捕获组中,因此使用 findall会得到一个很好的结果。例如:

import re

s = """17:00:44 From Smith Example : 38150002 Smith Example\n
17:00:54 From Smith Example : 41050002 Smith Middle Example\n
17:01:04 From Smith Example : 37-191129 Smith One Example\n
17:01:12 From Smith Example : 31-086612 Smith Example\n
17:01:20 From Smith Example : 40-250233 Smith Example\n
17:01:33 From Smith Example : 38129055 Smith Example\n
17:01:39 From Smith Example : 38-129055 Smith Example Joe\n"""

print(re.findall(r'\d\d:\d\d:\d\d.*:\s*([\d-]+)\s*(.*)$', s, re.M))

会给:
[('38150002', 'Smith Example'), 
('41050002', 'Smith Middle Example'),
('37-191129', 'Smith One Example'),
('31-086612', 'Smith Example'),
('40-250233', 'Smith Example'),
('38129055', 'Smith Example'),
('38-129055', 'Smith Example Joe')]

Regex Demo here .

请注意,如果您逐行迭代文件,则不需要 re.M 旗帜。

关于python - 使用 python re.findall 收集出席名单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61930807/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com