我無法找到我有的正則表達式問題的解決方案。這實際上是一種跟進質詢,這個帖子的: Find string between two substrings AND between string and the end of file查找文本中的所有實例,最後一個詞也應該開始用Python的正則表達式搜索
我已經創建了下面的示例文本(在我的應用程序中的文本是一個很多時間和多個文件等):
課程22/09/2010 1.早期工作Josephine,Jansen 22-09-2010 10:37:08 日期22/09/2010職責1.早期工作1.3在這裏可以有其他一些 相關的東西護士的干預措施記錄這是現在的第四個 說明。 6.2.1.3混亂:觀察。護士干預記錄 這是一個新的,再次注意到,我稱它爲筆記3.課程22/09/2010 1. 早期記錄這再次是一個筆記,我稱它爲筆記2. Apple: 0/less課程22/09/2010 3.夜間約瑟芬Jansen 22-09-2010 06:22:25日期22/09/2010課程3. Nightduty 1.3其他這裏 護士干預措施記錄6.2.1.3混亂:觀察。 Nursegoals干預記錄課程22/09/2010 3. Nightduty記錄 這是一個新的筆記,我把它叫做注1
現在我想從解析本文的具體信息。我的興趣是'記錄',因此是記錄背後的文本部分。和具體記錄的日期,白日期我的意思是像02-11-2010這樣的日期以及早期關稅,晚班關稅或夜間關稅的概念(所以日期將是:'02-09-2010 1.早期關稅' )。我遇到的問題是文件中沒有真正的一致性,所以有時候一個日期有兩個音符,其他時間只有一個。另外有時候,註釋部分包含文本,而其他時間則不包含。
我知道如何解析記錄部分,但我不知道如何解析首先日期然後註釋部分(S)。所以我儘管把問題分成兩部分。我的第一步是,將整個文件分成單獨的日期部分。第二步:遍歷所有日期部分以獲取特定日期部分的註釋(帶有正則表達式)。然後我會創建一個包含特定日期的列表(如果我只想要特定的日期,例如將它放在列單元格中,我會簡單地解析該日期部分的前13個字符)。 (s)與該日期有關。例如:
名單= [2010年2月8日1.早期的責任,[注1,注2],2010年2月8日2晚的職責,[注1],等等]
讓我們只專注於日期解析,所以我的問題是明確的。我用下面的代碼:
date = r'Course\s+(.*?)(?:Course|$)'
date_list = re.findall(date, text, re.DOTALL)
for i in date_list:
print (i)
print ('XXX')
的輸出是:
22/09/2010 1.早期佔空比約瑟芬,詹森22-09-2010 10時37分08秒 Date22/09/2010年的責任1.早期關稅1.3在這裏可以有一些其他的 相關的東西護士的干預措施記錄這是現在的第四個 說明。 6.2.1.3混亂:觀察。護士干預記錄 這是一個新的,再次注意到,我稱之爲注3. XXX 22/09/2010 3. Nightduty約瑟芬,Jansen 22-09-2010 06:22:25日期22/09/2010 XXX 22/09/2010 3.夜間記錄這是一個新的筆記,我稱它爲筆記1。 XXX
該輸出射門以下元素:
['課程22/09/2010 1.早期佔空比記錄這又是一個說明,我打電話 它注2蘋果:0 /更少 ']
和
[' 3。 Nightduty 1.3此處的其他內容護士干預措施記錄 6.2.1.3混亂:觀察。 Nursegoals干預課程‘ALS作爲一個新的開始這麼說來匹配]
所以,我認爲正則表達式利己考慮單詞的結尾有點跳了’。
這真的是巨大的,如果有人可以幫助我:)也許我缺少的東西..
這就是我一直在尋找!尤其是用正則表達式演示(我不知道)。非常感謝:) – jjn
很高興爲你工作。如果我的回答對你有幫助,請考慮upvoting(參見[如何在堆棧溢出?](http://meta.stackexchange.com/questions/173399/how-to-upvote-on-stack-overflow)) 。 –