我正在从PyPDF2库的输出中提取文本段落,后跟“OBSERVATION#1”或“OBSERVATION#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;
请为这个实例提供适当的正则表达式
如果应该有大写字母,并且单词可以包含
'
,那么可以使用character class,在这里可以列出允许的字符和正向展望。你知道吗然后,您可以捕获这些大写单词之间的内容,并使用正向前瞻来检查后面是另一个大写单词,后面是
#
和1+数字还是字符串的结尾。这个正则表达式使用re.DOTALL
,其中点与换行符匹配。你知道吗解释
(?=[A-Z']*[A-Z])
肯定的向前看,断言至少一个字符a-Z后面的内容,其中'
可以出现在前面[A-Z']+\s+#\d+
匹配1+次A-Z或',1+个空格字符和1+个数字(
捕获组.*?
匹配任何字符(?=
肯定的前瞻性断言接下来的是[A-Z']*[A-Z][A-Z']*
匹配大写字符A-Z,其中'
可以在前面和后面\s+#\d+
匹配1+个空格字符、#和1+个数字或字符串的结尾)
关闭非捕获组)
关闭捕获组Regex demo
相关问题 更多 >
编程相关推荐