我是使用正則表達式的新手。在python中使用正則表達式來返回特定單詞之間的大寫單詞
我在形式
Waco, Texas
Unit Dose 13 and
SECTION 011100 SUMMARY OF WORK
INDEX PAGE
PART 1. - GENERAL 1
1.1. RELATED DOCUMENTS 1
1.2. PROJECT DESCRIPTION 1
1.3. OWNER 1
1.4. ARCHITECT/ENGINEER 2
1.5. PURCHASE CONTRACTS 2
1.6. OWNER-FURNISHED ITEMS 2
1.7. CONTRACTOR-FURNISHED ITEMS 3
1.8. CONTRACTOR USE OF PREMISES 3
1.9. OWNER OCCUPANCY 3
1.10. WORK RESTRICTIONS 4
PART 2. - PRODUCTS - NOT APPLICABLE 4
PART 3. - EXECUTION - NOT APPLICABLE 4
我爲多餘的空白道歉的字符串,但是這是我解析,以獲取字符串word文檔的形式。
我需要捕獲第1部分第2部分和第3部分之間的所有標題,並將它們存儲在不同的列表中。到目前爲止,我有
matchedtext = re.findall('(?<=PART) (.*?) (?=PART)', text, re.DOTALL)
如果我理解正確的話,這些變通一下應該使用部分作爲一種基點和搶之間的文本。但是,在運行代碼時,匹配文本不會填充任何內容。
我的問題的第二部分是一旦我有部分不同事件之間的文本部分如何保存列表中每個標題的字符串的大寫標題。我的文檔中的一些字符串包含小寫字母,但我只想要所有字母都是大寫字母。
因此,總結一下如何獲取字符串中特定單詞之間的文本,並且一旦我擁有這些單詞,我如何才能將單詞保存爲列表中的單個字符串。
感謝您的幫助! :D
好吧,分裂是一個很酷的技巧,但我不知道isupper會的一對夫婦的原因工作。有時我的字符串包含帶有句子的子句,所以isupper會在句子的開頭抓住大寫字母。我嘗試使用isupper真正快速與上=''.join([c for c in text_between_parts if c。isupper()]),它也沒有忽略數字。這就是爲什麼我試圖使用正則表達式 – Jstuff
如果s.isupper()和s.isalpha()]' –
對不起,這是一個newby問題,請嘗試'[s for s in c.split()for c in textsbetweenbetweenparts ,但是該代碼不起作用,因爲它將文本返回3次。我想了解使用這個http://stackoverflow.com/questions/17006641/single-line-nested-for-loops發生了什麼,但我似乎無法理解它,你能解釋給我嗎?謝謝 – Jstuff