我正在從像 PyPDF2 這樣的庫的輸出中提取文本段落,然后是像“觀察#1”或“觀察#2”這樣的文本。但是會有一些錯誤,所以它可能像“觀察#2”一樣,我必須避免像“套件#300”這樣的規(guī)則是“如果有字符,它會是大寫的”。目前的python代碼片段如inspection_observation=pdfFile.getPage(z).extractText() if 'OBSERVATION' in inspection_observation: for finding in re.findall(r"[OBSERVATION] #\d+(.*?) OBSERVA'TION #\d?", inspection_observation, re.DOTALL): #print inspection_observation; print finding; 請為此實例提供適當的正則表達式,
1 回答

慕桂英3389331
TA貢獻2036條經驗 獲得超8個贊
如果應該有大寫字母并且單詞可以包含 a '
,則可以使用字符類,您可以在其中列出允許的字符和正向前瞻。
然后,您可以捕獲這些大寫單詞之間的內容,并使用正向前瞻來檢查后面是否是另一個大寫單詞后跟#
1+ 數字或字符串的結尾。此正則表達式利用re.DOTALL
點與換行符匹配的位置。
(?=[A-Z']*[A-Z])[A-Z']+\s+#\d+(.*?(?=[A-Z']*[A-Z][A-Z']*\s+#\d+|$))
解釋
(?=[A-Z']*[A-Z])
肯定前瞻來斷言至少一個字符 AZ 后面的內容,其中 a'
可以在之前出現[A-Z']+\s+#\d+
匹配 1+ 次 AZ 或 '、1+ 空格字符和 1+ 數字(
捕獲組[A-Z']*[A-Z][A-Z']*
匹配大寫字符 AZ,其中 a'
可以在前后\s+#\d+
匹配 1+ 個空格字符、# 和 1+ 個數字或字符串的結尾.*?
匹配任何字符(?=
斷言以下內容的正向預測是)
關閉非捕獲組)
關閉捕獲組
添加回答
舉報
0/150
提交
取消