查找文本中的所有实例,最后一个单词也应该是使用正则表达式搜索python的开始

查找文本中的所有实例,最后一个单词也应该是使用正则表达式搜索python的开始,python,regex,findall,Python,Regex,Findall,我无法找到一个正则表达式问题的解决方案。这实际上是这篇文章的后续问题: 我创建了以下示例文本(在我的应用程序中,文本要长得多,并且有多个文件等): 课程22/09/2010 1。早班约瑟芬,Jansen 22-09-2010 10:37:08 日期2010年9月22日职务1。早班1.3这里可以有其他的 有关Nursegoals干预措施的记录,这是第四次 注意。6.2.1.3混淆:观察。Nursegoals干预记录 这是一个新的注释(再次),我称之为注释3。课程22/09/2010 1。 早班记

我无法找到一个正则表达式问题的解决方案。这实际上是这篇文章的后续问题:

我创建了以下示例文本(在我的应用程序中,文本要长得多,并且有多个文件等):

课程22/09/2010 1。早班约瑟芬,Jansen 22-09-2010 10:37:08 日期2010年9月22日职务1。早班1.3这里可以有其他的 有关Nursegoals干预措施的记录,这是第四次 注意。6.2.1.3混淆:观察。Nursegoals干预记录 这是一个新的注释(再次),我称之为注释3。课程22/09/2010 1。 早班记录这又是一张便条,我称之为便条2。苹果公司: 0/减去课程2010年9月22日3。夜班约瑟芬,詹森2010年9月22日 06:22:25日期2010年9月22日课程3。夜班1.3这里还有别的事吗 Nursegoals干预记录6.2.1.3混淆:观察。 Nursegoals干预记录课程2010年9月22日3。夜班记录 这是一个新的注释,我称之为注释1

现在,我想从这个文本中解析特定的信息。我的兴趣是“记录”,因此记录后面的文本部分。具体记录的日期,我指的是2010年11月2日,以及早班、晚班或夜班的概念(所以日期应该是:“2010年9月2日1.早班”)。我的问题是,文件中没有真正的一致性,所以有时一个日期有两个注释,而其他时间只有一个注释。此外,注释部分有时包含文本,有时不包含文本

我知道如何解析记录部分,但我不知道如何首先解析日期,然后解析注释部分。所以我想把问题一分为二。我的第一步是,将整个文件拆分为单独的日期部分。第二步:迭代所有日期部分,以获取特定日期部分的注释(使用正则表达式)。然后,我会制作一个包含特定日期的列表(如果我只想要特定日期,例如,将其放在列单元格中,我只需解析该日期部分的前13个字符)以及与该日期相关的注释。例如:

列表=[02-08-2010 1.早班,[note1,note2010]02-08-2010 2.晚班,[note1]等]

让我们只关注日期解析,这样我的问题就清楚了。我使用以下代码:

date = r'Course\s+(.*?)(?:Course|$)'
date_list = re.findall(date, text, re.DOTALL)
for i in date_list: 
   print (i)
   print ('XXX')
输出为:

2010年9月22日1。早班约瑟芬,Jansen 22-09-2010 10:37:08 日期2010年9月22日职务1。早班1.3这里可以有其他的 有关Nursegoals干预措施的记录,这是第四次 注意。6.2.1.3混淆:观察。Nursegoals干预记录 这是一个新的注释(再次),我称之为注释3。XXX 2010年9月22日3。 夜班约瑟芬,Jansen 2010年9月22日06:22:25日期2010年9月22日XXX 22/09/2010 3. 夜班记录这是一张新的便条,我称之为便条1。 XXX

此输出未包含以下元素:

[Course 22/09/2010 1.早班记录这又是一张便条,我打电话给你 it注释2.苹果:0/更少']

[3.夜班1.3这里还有其他的记录吗 6.2.1.3混淆:观察、护理干预']

<> P>这是跳跃式的,因为我认为正则表达式会考虑“当然”这个词的结尾,ALS是一个新的“匹配”的开始。p>
如果有人能帮我,那就太好了:)也许我错过了什么

将非捕获组更改为正向前瞻:

r'Course\s+(.*?)(?=Course|$)'
                 ^^
看。展开的、更快的变体是
r'Course\s+([^C]*(?:C(?!ourse)[^C]*)*”
(请参阅)

否则,重叠的子字符串将不匹配

:

输出:

22/09/2010 1. Early duty Josephine, Jansen 22-09-2010 10:37:08 Date 22/09/2010 Duty 1. Early duty 1.3 Here there can be some other related stuff Nursegoals Interventions Record This is now the fourth note. 6.2.1.3 Confusion: Observing. Nursegoals Interventions Record This is a new, note (again), i call it note 3. 
22/09/2010 1. Early duty Record This is again a note, i call it note 2. Apple: 0/less 
22/09/2010 3. Nightduty Josephine, Jansen 22-09-2010 06:22:25 Date 22/09/2010 
3. Nightduty 1.3 Something else here Nursegoals Interventions Record 6.2.1.3 Confusion: Observing. Nursegoals Interventions Record 
22/09/2010 3. Nightduty Record This is a new note, i call it note 1.

这就是我要找的!伟大的答案,特别是与正则表达式演示(我不知道)。非常感谢:)很高兴它对你有用。如果我的答案证明对你有用的话,请考虑一下投票。
22/09/2010 1. Early duty Josephine, Jansen 22-09-2010 10:37:08 Date 22/09/2010 Duty 1. Early duty 1.3 Here there can be some other related stuff Nursegoals Interventions Record This is now the fourth note. 6.2.1.3 Confusion: Observing. Nursegoals Interventions Record This is a new, note (again), i call it note 3. 
22/09/2010 1. Early duty Record This is again a note, i call it note 2. Apple: 0/less 
22/09/2010 3. Nightduty Josephine, Jansen 22-09-2010 06:22:25 Date 22/09/2010 
3. Nightduty 1.3 Something else here Nursegoals Interventions Record 6.2.1.3 Confusion: Observing. Nursegoals Interventions Record 
22/09/2010 3. Nightduty Record This is a new note, i call it note 1.