Выделите абзац в тексте pdf, используя pdfgrep из конкретного слова - PullRequest
0 голосов
/ 11 октября 2019

Я начинаю с регулярных выражений и пытаюсь выбрать все абзацы, в которых есть два конкретных слова (IDAILDA или 282610 / SP) из файла PDF, содержащего более 3000 страниц.

Если у абзаца есть или IDAILDA или 282610 / SP , я должен его выбрать.

Пример:

Processo 1001959-75.2018.8.26.0028 - Divórcio Consensual - Dissolução - SMRAS - Официальное и правдоподобное сообщение (эт. 30/31). - ADV: IDAILDA APARECIDA GOMES (OAB 282610 / SP )

Processo 1002033-32.2018.8.26.0028 - Inventário - Inventário e Partilha - Мария дас Грасас де Соуза Андраде - Жаклинде Соуза Андраде - Ракель де Соуза Андраде - Aguarde-se o recolhimento do imposto causa mortis. - ADV: ЛУИЗ ГУСТАВО КАВАЛЬХЕЙРО ФЕРРЕЙРА (OAB 240154 / SP), АНТОНИО АУГУСТО КАЛЬТАБИАНО ЭЛИЗЕУ (OAB 239669 / SP)

Процесс 0000995-65.2019.8.26.0028 (основной процесс 1000841-98.2017.8.26.0028) приговор к выписке- Пердас и Данос - Адриано Тейшейра Гимарайнш - Сильвестр Пелегрини Батиста - ВИСТОС. Expeça-se guia de levantamento do valor depositado, intimando-se a parte autora / exequente. Em seguida, транзитная презентация, сборник статей, сборник предложений, как cautelas devidas. PRIC - ADV: IDAILDA APARECIDA GOMES (OAB 282610 / SP ), МАРИЯ АПАРЕЦИДА СУСА ГАЙ МАРОТТА (OAB 91666 / SP), ГУГО ВАЛЛЕ ДОС САНТОС СИЛЬВА (OAB 181789 / SP)

Следуя этой логике, я должен иметь весь первый и третий абзацы в качестве ответа на мой запрос.

Все параграфы, которые мне нужно выделить, начинаются со слова Процессо , затем я попробовал этот код

pdfgrep 'Processo[^?\!.]*IDAILDA[^?\!.]*282610/SP[^?\!.]*' mypdf.pdf

Но ответ на этот запрос был недействительным. Поэтому я попробовал только со словом IDAILDA :

pdfgrep '[^?\!.]*IDAILDA[^?!.]*' mypdf.pdf

Это сработало, но не вернуло весь абзац (конечно). Проблема не в PDF, а в выражении. Заранее спасибо.

Использование pdfgrep для поиска предложений, содержащих конкретные слова

1 Ответ

0 голосов
/ 12 октября 2019

Попробуйте этот шаблон:

^(?=.*IDAILDA)^(?=.*282610\/SP)^Processo.*

https://regex101.com/r/UCCFbQ/1

Первые две части этого шаблона используют отрицательный прогноз, чтобы утверждать, что с начала строкиесть любое количество символов, за которыми следует IDAILDA, затем проверяется то же самое для 282610/SP.

Затем шаблон привязывается к началу, чтобы убедиться, что он начинается с Processo и соответствует всему после этого.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...