Я новичок в регулярных выражениях.
У меня есть код PHP, который извлекает весь текст из файла PDF и сохраняет в строковую переменную.
На странице №2 есть определенный параграф, который мне нужно получить. Я пытаюсь использовать регулярное выражение, чтобы получить текст до периодов, но проблема в том, что внутри этого абзаца есть много периодов, и регулярное выражение соответствует только первому предложению.
Мне нужно получить весь абзац, который выровнен справа. Все они начинаются с этого предложения «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.
КУИДА-СЭ-ДЕ-АГРАВО-ДЕ-ИСКУССТВО ПЕНАЛЬНАЯ ИНТЕРПОСТО ПЕЛОМ МЕТРА В И Т П И О П И Б Л И К О Л Е Д С Т Е Р С Т У Ч Е Н И Е КОНТРА ДЕКРИСАН ПРОФЕРИДА ПЕЛО ХУИЗО ДО ДЕКРИМ ДА ДЖАЙР ПИРАДЕ РИФУ РИФУ РИФУ РИФУ ПИРА ДЖАРА
Это регулярное выражение работает для вашего контента,
[A-Z]+.*\.\s*\n
По сути, начинайте матч с заглавных букв и фиксируйте все, что угодно, включая любые точки в середине текста, и останавливайтесь на последней точке .
Дайте мне знать, если это работает для вас.
Поскольку предложение длится до конца строки, вы можете использовать многострочное совпадение (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.