Regex заменить в PHP, чтобы получить число или диапазон после некоторых префиксов - PullRequest
0 голосов
/ 08 мая 2018

У меня есть несколько текстов со ссылками на страницы судебных исков (фолхи "fl. Или fls." На португальском языке), в которых мне нужно заменить эти цифры для ссылки (тега a) на URL-адрес, например:

"localhost/m-n-i/consultarFolhas/".$page_start."/".$page_end

Текстовые примеры:

  • [...] Fl.53 : Рассмотрение манифестации до настоящего времени, за исключением случаев, когда [...]
  • [...] Nos termos das FLS 10/44 estão [...]
  • [...] AO ERJ para se явный объективный объективный fls.88/92 [...]
  • - partes sobre resposta dos ofícios de fls.320/325 e fls.327/333 .
  • [...] обсервады как verbas que constam do documentmento fls.61 do [...]
  • Документация по пенсиям (DAP) apressentado às fls.61 , aposs sua contestação

As youиногда я вижу, что они используют множественное число (а) даже для отдельных страниц, но для нескольких страниц они обычно используют «/» для разделения диапазона.

Я пробовал это регулярное выражение, но все еще неэффективно ловить описанные ситуациивыше:

const REGEX_FOLHAS = '#^.*\bfls?\. (\d+).*$#m';

Так возможно ли создать REGEX для получения этих ситуаций и заменить на гиперссылку, подобную этой?

Nos termos das <a href='localhost/m-n-i/consultarFolhas/10/44/'> FLS 10/ 44 </a> estão

<a href='localhost/m-n-i/consultarFolhas/53/'>Fl. 53</a>: Considerando a manifestação do Estado, excluam-se os executados

1 Ответ

0 голосов
/ 08 мая 2018

Ваше регулярное выражение - почти то, что вы хотите, но вы забыли некоторые шаблоны и модификаторы:

  • Удалить якоря и жадные точки (флаг m тоже)
  • Включить нечувствительность к регистру (i флаг)
  • Сделать необязательным \. и следующие пробелы: \.? *
  • Написать дополнительный шаблон для цифр, разделенных косой чертой (?:\/ *\d+)?
  • Использование групп захвата для извлечения данных

Собираем все вместе:

(?i)\bfls?\.? *(\d+)(?:(/) *(\d+))?

Живая демоверсия

PHP код:

preg_replace('~(?i)\bfls?\.? *(\d+)(?:(/) *(\d+))?~', '<a href="localhost/m-n-i/consultarFolhas/$1$2$3">$0</a>');
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...