我正在从像 PyPDF2 这样的库的输出中提取文本段落,然后是像“观察#1”或“观察#2”这样的文本。但是会有一些错误,所以它可能像“观察#2”一样,我必须避免像“套件#300”这样的规则是“如果有字符,它会是大写的”。目前的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
提交
取消
