Как использовать Regex на Apache REQUEST_URI? - PullRequest
1 голос
/ 18 мая 2019

В настоящее время использую Apache 2.4 с включенным SSI Legacy Parser и пытаюсь использовать код Regex для получения результатов, которые я ищу.

<!--#set var="test" value=$REQUEST_URI -->
<!--#echo var="test" -->

Пример результата, который я получаю из приведенного выше кода:

/path1/path2/path3/filename.html

/path1/path2/path3/filename.html?id=2019

Пример результата, который я хотел бы получить:

/path1/path2/path3/

Все, что удалено после последней косой черты, независимо от количества путей.

Есть ли код регулярного выражения или что-то, что я мог бы использовать для этого?

1 Ответ

1 голос
/ 18 мая 2019

Конечно! Здесь мы можем просто добавить границу косой черты и провести все от начала до последней косой черты:

(.*)\/

Выражение может тут же остановиться, и его можно просто вызвать с помощью $1. Тем не менее, мы также можем добавить дополнительные границы, например, начальные и конечные символы:

^(.*)\/.*$

enter image description here

RegEx

Если это не было вашим желаемым выражением, вы можете изменить / изменить выражения в regex101.com .

RegEx Circuit

Вы также можете визуализировать свои выражения в jex.im :

enter image description here

Демонстрация JavaScript

const regex = /^(.*)\/.*$/gm;
const str = `/path1/path2/path3/filename.html
/path1/path2/path3/filename.html?id=2019
/path1/path2/path3/path4/filename.html?id=2019
/path1/path2/path3/path4/path5/filename.html?id=2019

`;
const subst = `$1`;

// The substituted value will be contained in the result variable
const result = str.replace(regex, subst);

console.log('Substitution result: ', result);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...