Необходимо сопоставить только второе вхождение из пакета в Regex - PullRequest
0 голосов
/ 01 апреля 2020

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

/([^/]+)[a-z]

Пакет:

GET /First_Random/Second_Random/Third_Random/search_results.php HTTP / 1.1

Спасибо.

Regex первой части

1 Ответ

0 голосов
/ 01 апреля 2020

Вы можете захватить первую часть в группе и сопоставить вторую и третью части, используя отрицательные классы символов [^

В качестве замены используйте первую группу захвата (обычно $1 или \1) с последующей заменой, разделенной на передний сл sh

^([^/]*/[^/]+/)[^/]+/[^/]+
  • ^ Начало строки
  • ( Захват группа 1
    • [^/]*/[^/]+/ Соответствует началу строки и первой части до /
  • ) Закрыть группу
  • [^/]+/[^/]+ Соответствует второй и третьей части, разделенной на /

Regex demo

Пример возможного формата замены

$1SECOND/THIRD
...