REGEX, чтобы получить весь абзац из строки, извлеченной из PDF

Я новичок в регулярных выражениях.

У меня есть код PHP, который извлекает весь текст из файла PDF и сохраняет в строковую переменную.
На странице №2 есть определенный параграф, который мне нужно получить. Я пытаюсь использовать регулярное выражение, чтобы получить текст до периодов, но проблема в том, что внутри этого абзаца есть много периодов, и регулярное выражение соответствует только первому предложению.

Вот как выглядит PDF часть:
введите описание изображения здесь

Мне нужно получить весь абзац, который выровнен справа. Все они начинаются с этого предложения «AGRAVO DE EXCECUÇÃO PENAL». Но конец отличается от одного к другому.

Вот как выглядит значение строковой переменной (нужная часть выделена жирным шрифтом):


«PODER JUDICIÁRIO»
ТРИБУНАЛЬ-ДЕ-ХУСТИКА-ДО-ЭСТАДО-ДЕ-САН-ПАУЛУ
13ª CAMARA DE DIREITO УГОЛОВНОЕ
AGRAVO DE EXECUçãO PENAL Nº 000000000000 — VOTO Nº 0000 2
ВОТО № 00000
AGRAVO DE EXECUçãO PENAL Nº 0000000000000000000
АГРАВАНТЕ: МИНИСТЕРИО ПУБЛИКО-ДО-ЭСТАДО-ДЕ-САН-ПАУЛО
АГРАВАДА: ИМЯ
AGRAVO ДЕ EXECUÇÃO ПЕНИТЕНЦИАРНАЯ EXECUçãO УГОЛОВНОГО PLEITO ДЕ MANUTENçãO DO CARáTER HEDIONDO DO ЗЛОДЕЯНИЕ ДЕ Trafico PRIVILEGIADO, А ФИМЫ ДЕ MODIFICAR ОС CáLCULOS NOVO ENTENDIMENTO DO С. СТП Externado НЕТ JULGAMENTO DO HC Nº 118,533 / МС, НЕТ SENTIDO ДЕ AFASTAR Natureza Hedionda DO Trafico PRIVILEGIADO DE DROGAS DECISãO DO JUíZO EM CONSONANNCIA COM O ENTENDIMENTO ESPECíFICO DO PLENáRIO DO C. STF, QUE Há DE PREVALECER AGRAVO NãO PROVIDO.
КУИДА-СЭ-ДЕ-АГРАВО-ДЕ-ИСКУССТВО ПЕНАЛЬНАЯ ИНТЕРПОСТО ПЕЛОМ МЕТРА В И Т П И О П И Б Л И К О Л Е Д С Т Е Р С Т У Ч Е Н И Е КОНТРА ДЕКРИСАН ПРОФЕРИДА ПЕЛО ХУИЗО ДО ДЕКРИМ ДА ДЖАЙР ПИРАДЕ РИФУ РИФУ РИФУ РИФУ ПИРА ДЖАРА

-1

Решение

Это регулярное выражение работает для вашего контента,

[A-Z]+.*\.\s*\n

По сути, начинайте матч с заглавных букв и фиксируйте все, что угодно, включая любые точки в середине текста, и останавливайтесь на последней точке .

демонстрация

Дайте мне знать, если это работает для вас.

1

Другие решения

Поскольку предложение длится до конца строки, вы можете использовать многострочное совпадение (m модификатор) чтобы получить ^ а также $ соответствовать началу и концу строки для каждой строки. Тогда это простое регулярное выражение должно работать:

/^AGRAVO DE EXECUÇÃO PENAL.*$/m

например

preg_match('/^AGRAVO DE EXECUÇÃO PENAL.*$/m', $string, $matches);
echo $matches[0];

Выход:

AGRAVO DE EXECUÇÃO PENAL EXECUçãO CRIMINAL PLEITO DE MANUTENçãO DO CARáTER HEDIONDO DO CRIME DE TRáFICO PRIVILEGIADO, A FIM DE MODIFICAR OS CáLCULOS NOVO ENTENDIMENTO DO C. STF EXTERNADO NO JULGAMENTO DO HC Nº 118.533/MS, NO SENTIDO DE AFASTAR A NATUREZA HEDIONDA DO TRáFICO PRIVILEGIADO DE DROGAS DECISãO DO JUíZO EM CONSONâNCIA COM O ENTENDIMENTO ESPECíFICO DO PLENáRIO DO C. STF, QUE Há DE PREVALECER AGRAVO NãO PROVIDO.

Демо на 3v4l.org

1

По вопросам рекламы [email protected]