python-3.x - Python 正则表达式按人名分组句子
问题描述
我有以下文字:
"- Nike: Hey, where are you?\n10/6/20, 8:51 - Mike: Soon\n10/6/20, 8:55 - Nike: how are you guy?\n10/4/20, 8:55 - Mike: It's okay\n10/4/20, 9:05"
我想制作 2 个如下列表:
nike = ["Hey, where are you?", "how are you guy?"]
mike = ["Soon", "It's okay"]
知道我怎么能做这样的事情吗?
多谢你们!
解决方案
import re
s = "- Nike: Hey, where are you?\n10/6/20, 8:51 - Mike: Soon\n10/6/20, 8:55 - Nike: how are you guy?\n10/4/20, 8:55 - Mike: It's okay\n10/4/20, 9:05"
out = {}
for name, sentence in re.findall(r'([A-Za-z]+):\s*(.*)$', s, flags=re.M):
out.setdefault(name, []).append(sentence)
print(out)
印刷:
{'Nike': ['Hey, where are you?', 'how are you guy?'], 'Mike': ['Soon', "It's okay"]}
推荐阅读
- paypal - Paypal 按钮图像损坏
- java - Java字符串的PGP加密
- php - admin-ajax.php - 服务器响应状态为 500(内部服务器错误)
- java - Consumer 函数抛出异常后,Spliterator 是否可以重用?
- python - tensorflow:AttributeError:在遵循官方 ResNet 设置时,“list”对象没有属性“use_synthetic_data”
- apache-spark - 从 DataSet Spark Java API 生成 Excel 文件?
- jenkins-pipeline - 使用其他条件在 jenkinsfile 中运行多个分支
- python - python tornado websocket错误:RuntimeError:线程'Thread-1'中没有当前事件循环
- r - 绘制线性和非线性多元回归线的加变量图
- ios - 在当前控制器上显示一个视图控制器作为弹出窗口