【发布时间】:2020-11-26 02:06:53
【问题描述】:
我有一个文本文件,如果其中包含一个字符串,我想匹配整个段落块,但我当前的正则表达式不能匹配包括新行在内的整个段落。
文本示例:
NOMEAR ISABELLE FERREIRA ZARONI, ID FUNCIONAL Nº
5100796-7, para exercer, com validade a contar de 16 de novembro
de 2020, o cargo em comissão de Assessor, símbolo DAS-7, da Sub-
secretaria de Concessões e Parcerias, da Secretaria de Estado de
Planejamento e Gestão, anteriormente ocupado por Vinicius dos San-
tos Silva, ID Funcional n° 5108029-0. Processo nº SEI-
1 2 0 0 0 1 / 0 1 4 6 11 / 2 0 2 0 .
NOMEAR KARINE MATOS DIAS, ID FUNCIONAL Nº 5092869-4 para
exercer, com validade a contar de 16 de novembro de 2020, o cargo
em comissão de Assessor, símbolo DAS-7, da Secretaria de Estado
de Planejamento e Gestão, anteriormente ocupado por Amauri Ferrei-
ra do Carmo, ID Funcional nº 5099579-0. Processo nº SEI-
1 2 0 0 0 1 / 0 1 4 6 11 / 2 0 2 0 .
NOMEAR ROSIONE FERNANDES DE SÁ, ID FUNCIONAL Nº
4413710-9, para exercer, com validade a contar de 16 de novembro
de 2020, o cargo em comissão de Assistente II, símbolo DAI-6, da
Secretaria de Estado de Planejamento e Gestão, anteriormente ocu-
pado por Luis Henrique Ferreira de Aquino, ID Funcional nº 1914315-
0. Processo nº SEI-120001/014825/2020.
EXONERAR, com validade a contar de 16 de novembro de 2020,
LUIS HENRIQUE FERREIRA DE AQUINO, ID FUNCIONAL Nº
1914315-0, do cargo em comissão de Assistente II, símbolo DAI-6, da
Secretaria de Estado de Planejamento e Gestão. Processo nº SEI-
120001/014825/2020.
从上面的文本块中,如果它包含 da Secretaria de Estado de Planejamento e Gestão,我想匹配整个段落所以预期的 输出 是获得所有段落,因为它们都在单行或多行中包含该句子
NOMEAR ISABELLE FERREIRA ZARONI,ID FUNCIONAL Nº 5100796-7, para exercer, com validade a contar de 16 de novembro de 2020, o cargo em comissão de Assessor, símbolo DAS-7, da Sub- secretaria de Concessões e Parcerias, da Secretaria de Estado de Planejamento e Gestão, anteriormente ocupado por Vinicius dos San- tos Silva, ID Funcional n° 5108029-0。处理器 nº SEI- 1 2 0 0 0 1 / 0 1 4 6 11 / 2 0 2 0。
NOMEAR KARINE MATOS DIAS,ID FUNCIONAL Nº 5092869-4 段 exercer, com validade a contar de 16 de novembro de 2020, o cargo em comissão de Assessor, símbolo DAS-7, da Secretaria de Estado de Planejamento e Gestão, anteriormente ocupado por Amauri Ferrei- ra do Carmo,ID 功能编号 5099579-0。处理器 nº SEI- 1 2 0 0 0 1 / 0 1 4 6 11 / 2 0 2 0。
NOMEAR ROSIONE FERNANDES DE SÁ,ID FUNCIONAL Nº 4413710-9, para exercer, com validade a contar de 16 de novembro de 2020, o cargo em comissão de Assistente II, símbolo DAI-6, da Secretaria de Estado de Planejamento e Gestão, anteriormente ocu- pado por Luis Henrique Ferreira de Aquino, ID Funcional nº 1914315- 0. 处理器编号 SEI-120001/014825/2020。
EXONERAR,com 验证 2020 年 11 月 16 日的通知, LUIS HENRIQUE FERREIRA DE AQUINO,ID FUNCIONAL Nº 1914315-0, do cargo em comissão de Assistente II, símbolo DAI-6, da Secretaria de Estado de Planejamento e Gestão。处理器 nº SEI- 120001/014825/2020.
我的尝试
import re
pattern = re.compile(r'.*Secretaria de Estado de Planejamento e Gestão.*', re.MULTILINE)
with open('pdf_text.txt', 'r') as file:
data = file.read()
matched = pattern.findall(data)
print (matched)
我当前的输出:
['Secretaria de Estado de Planejamento e Gestão, anteriormente ocu-', 'Secretaria de Estado de Planejamento e Gestão。处理器 nº SEI-']
此输出有两个问题,首先它与此处的完整段落块不匹配,然后不获取句子存在于单行或多行中的所有块。 p>
【问题讨论】:
-
看来您在其他问题中使用我建议的代码,但问题略有不同
-
@anubhava 是的先生..
标签: python regex regex-lookarounds regex-group regex-greedy