python - Python 条件拆分
问题描述
给定这个字符串:
s = '01/03/1988 U/9 Mi\n08/19/1966 ABC\nDEF\n12/31/1999 YTD ABC'
我想在每条新记录(以日期开头)上拆分它,如下所示:
['01/03/1988 U/9 Mi', '08/19/1966 ABC\nDEF', '12/31/1999 YTD ABC']
注意到 ABC 和 DEF 之间额外的新行分隔符了吗?这就是我面临的挑战。我想保留它而不在那里分裂。我想我需要有条件地拆分这些分隔符:
['01/', '02/','03/', '04/', '05/', '06/', '07/', '08/', '09/', '10/', '11/', '12/']
有没有一种简单的方法可以使用re.findall
这种方式,还是有更好的方法?
提前致谢!
解决方案
您可以在新行上拆分,后跟带有前瞻的日期。就像是:
import re
s = '01/03/1988 U/9 Mi\n08/19/1966 ABC\nDEF\n12/31/1999 YTD ABC'
re.split(r'\n(?=\d{2}/\d{2}/\d{4})', s)
# ['01/03/1988 U/9 Mi', '08/19/1966 ABC\nDEF', '12/31/1999 YTD ABC']
根据您的数据,您可以简化为仅一个换行符后跟 2 位数字:r'\n(?=\d{2})'
推荐阅读
- xamarin.forms - 自定义弹出窗口,就像 Xamarin 表单中的选择器一样
- python - 相对于python中的另一个输入变量缩放输入特征
- kubernetes - 使用 traefik 对 kubernetes apiserver 进行负载均衡
- php - 具有多个正文关键字的 IMAP_SEARCH
- django - 尝试 SubURL 时出现 Django 语法错误
- android - Xamarin - 尝试加载 libtbb.so 导致运行时“libc.so”未找到消息
- php - 选择不使用函数显示的选项
- sql - CUBE 降维顺序切片
- java - 替换字符串的一部分
- sockets - sslscan.c:94:25:致命错误:openssl/err.h:没有此类文件或目录编译终止。#163