如何按日期拆分日期分隔型文本字符串中的对应备注内容
核心思路是利用正则匹配dd/mm/yyyy:的固定日期格式做分割,提取对应日期和后面的备注内容。
实现方案1:Python代码实现
import re # 原始文本 raw_str = "09/05/2021: La persona seleccionada se encuentra en seguridad 05/09/2021: Se envia un nuevo grupo de candidatos 07/11/2021: El candidato contratado no inicia " # 正则规则:捕获日期,非贪婪匹配备注直到下一个日期或文本末尾 match_pattern = r"(\d{2}/\d{2}/\d{4}):\s*(.*?)\s*(?=\d{2}/\d{2}/\d{4}:|$)" parsed_data = re.findall(match_pattern, raw_str) # 输出结构化Markdown表格 print("| DATE | COMMENT |") print("| ---- | ---- |") for date, comment in parsed_data: print(f"| {date} | {comment} |")
运行后直接输出你需要的表格结果。
实现方案2:文本编辑器批量替换(无需代码)
支持正则查找替换的编辑器(VS Code、Sublime Text、Notepad++等)都可以用这个方法:
- 开启正则查找模式
- 查找内容填:
(\d{2}/\d{2}/\d{4}):\s*(.*?)\s*(?=\d{2}/\d{2}/\d{4}:|$) - 替换内容填:
| $1 | $2 | - 执行全部替换后,在文本最顶部补加两行表头即可:
| DATE | COMMENT | | ---- | ---- |
正则规则说明
\d{2}/\d{2}/\d{4}匹配固定格式的日期,作为第一个捕获组\s*匹配日期和备注之间的空格.*?非贪婪匹配备注内容,避免把后面的日期也包含进来(?=\d{2}/\d{2}/\d{4}:|$)正向预查,匹配终止条件为下一个日期格式的开头或者文本末尾,不会占用下一个日期的字符
内容的提问来源于stack exchange,提问作者True Data
相关产品推荐
相关产品推荐

