字符串的正则表达式包含 if 字符全部大写 python
Regular Expression for a string contains if characters all in capital python
我正在从 PyPDF2 等库的输出中提取文本段落,后跟 "OBSERVATION #1" 或 "OBSERVATION #2" 等文本。
但是会有一些错误所以它可能像 "OBSERVA'TION #2" 我必须避免像 "Suite #300" 所以规则是 "IF THERE IS CHARACTER, IT WOULD BE IN CAPITAL".
当前 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']+\s+#\d+(.*?(?=[A-Z']*[A-Z][A-Z']*\s+#\d+|$))
说明
(?=[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+ 个数字或字符串结尾
)
关闭非捕获组
)
关闭捕获组
我正在从 PyPDF2 等库的输出中提取文本段落,后跟 "OBSERVATION #1" 或 "OBSERVATION #2" 等文本。
但是会有一些错误所以它可能像 "OBSERVA'TION #2" 我必须避免像 "Suite #300" 所以规则是 "IF THERE IS CHARACTER, IT WOULD BE IN CAPITAL".
当前 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']+\s+#\d+(.*?(?=[A-Z']*[A-Z][A-Z']*\s+#\d+|$))
说明
(?=[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+ 个数字或字符串结尾
)
关闭非捕获组
)
关闭捕获组