@Nastya1920

Как можно заменить attributes в path, используя (или нет) regex?

Объясню точнее:
Есть большой список uri в таблице (в качестве паттернов для определения некоторых правил).
Например, "...localhost:8080/students/{studentId}/grades/{maths}"

Я ловлю через фильтр запросы, вытаскиваю uri, могу получить все эти аттрибуты по их именам.
Теперь мне надо взять строку (этот uri) и заменить в нем эти аттрибуты (значения) на их имена: то есть 1234 на "{studentId}", чтобы сравнить с паттернами из таблицы.

В чем сложность: я не могу искать просто substring, т.к. такое сочетание символов может найтись не только среди атрибутов, но и в самих эндпоинтах uri - тогда заменю не то, что надо (типа students/{students}). Или это сочетание может быть внутри другого (ограничить условие поиска наличием слэшей нельзя, т.к. аттрибут может быть в конце uri.

Как можно сделать замену аттрибутов на их имена в строке, учитывая все эти варианты? Есть такие regex'ы?
Буду сильно благодарна за помощь
  • Вопрос задан
  • 32 просмотра
Пригласить эксперта
Ответы на вопрос 1
azerphoenix
@azerphoenix Куратор тега Java
Здравствуйте!
Думаю, что вся картина текущей ситуации вам лучше известна, нежели мне. Но!
Или это сочетание может быть внутри другого (ограничить условие поиска наличием слэшей нельзя, т.к. аттрибут может быть в конце uri.

Почему бы не написать регулярное выражение, которое может или наоборот не может содержать слеш в конце?
Посмотрите на эти ссылки. Возможно, что они наведут вас на мысль
https://stackoverflow.com/questions/23046572/regex...
https://stackoverflow.com/questions/19132133/regex...
https://stackoverflow.com/questions/34733751/regex...

Или например, проверять местонахождение атрибута и если он в конце, то игнорировать наличие slash в конце, а во всех остальных случаях ограничивать слешем.

Точный ответ можете дать вы, ибо точная структура всех возможных урлов и паттернов имеющихся в наличии известна вам
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
ОТП Банк Москва
от 240 000 до 270 000 ₽
Sportmaster Lab Санкт-Петербург
от 150 000 ₽
Эвотор Москва
от 180 000 до 250 000 ₽