我以字符串格式读取数据,如下所示
>>> 26 24 16 Panelboards 10/05/18 26 26 00i Power Distribution Units – Install 10/05/18
我想将'26 24 16','Panelboards',10/05/18和'26 26 26 00i','Power Distribution Units–Install',10/05/18分离为小节、名称和日期
此外,在每个日期之后,新项目都可以开始。在这种情况下,在2018年5月10日之后,新的小节开始
我已经使用正则表达式过滤掉了子部分,但它在我的数据中创建了非结构化
re.split(r'\d\d \d\d \d\d',sentence)
如果有人有解决方案,可以高效地检索两个项目的这3个功能
此外,由于结构文件中的更改,我不能将两个空格用作正则表达式
你可以用
见regex demo详细信息:
\b
-字边界(?P<subsection>\d+(?:\s+\d\w*)+)
-分组“subsection”:一个或多个数字,然后出现一个或多个空格,后跟一个数字,然后是零个或多个单词字符\s+
-一个或多个空格(?P<name>.*?)
-组“名称”:零个或多个字符(换行字符除外),尽可能少\s+
-一个或多个空格(?P<date>\d{1,2}/\d{1,2}/\d{2})
-组“日期”:一个或两个数字,/
,一个或两个数字,/
,两个数字\b
-字边界见a Python demo:
输出:
尽可能具体:
将组
1
与小节匹配,将2
与名称匹配,将3
与日期匹配如果需要先将字符串拆分为每一行,可以将其挂接到日期的末尾:
尝试:
印刷品:
编辑:如果要拆分第二项,请使用
str.split()
和maxsplit=1
:印刷品:
相关问题 更多 >
编程相关推荐