Регулярное выражение для проверки параметров в URI

Я пытаюсь проверить URI системы с помощью регулярного выражения для определения параметров в середине URI REST API, однако у меня возникают проблемы с проверкой параметров в конце URI, например:

В базе я получаю правило для URI: /uaa/api/users/*/city/*

Замените '*' на регулярное выражение, чтобы оно принимало любой символ между / или после /: ^/uaa/api/users/+(.*)+/city/+(.*)$

Я сравниваю URI с регулярным выражением с URI запроса: /uaa/api/users/john.connor/city/12

Но если я удалю значение в конце URI и оставлю только /, он принимает то, что мне нужно, чтобы он потерпел неудачу, потому что после / нет значения, то есть при использовании регулярного выражения ^/uaa/api/users/+(.*)+/city/+(.*)$ с URI /uaa/api/users/john.connor/city/ мне нужно, чтобы терпит неудачу, потому что после / нет значения. Как я могу сделать так, чтобы он не принимал бесполезный бар, за которым следует в конце?

Я не знаю, имеет ли это значение, но я использую регулярное выражение в Java!

Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
1
0
55
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Здесь

Он содержит по крайней мере один символ из каждой из следующих категорий.

Строчные буквы Прописная буква цифра Символ

(?=.*\d)(?=.*[a-z])(?=.*[A-Z])(?=.*\W)

(?=.*[a-z])        // use positive look ahead to see if at least one lower case letter exists
(?=.*[A-Z])        // use positive look ahead to see if at least one upper case letter exists
(?=.*\d)           // use positive look ahead to see if at least one digit exists
(?=.*\W])        // use positive look ahead to see if at least one non-word character exists
Ответ принят как подходящий

Есть несколько вещей, на которые следует обратить внимание в отношении шаблона, который вы используете.

Плюс в /+ — это квантификатор в этом контексте, соответствующий 1+ косой черте. Эта часть (.*)+ также использует этот квантификатор для повторения группы, которая сама соответствует 0+ раз любому символу (включая косую черту).

Я думаю, что вы ищете, чтобы сопоставить не косую черту, используя отрицательный класс персонажей[^/]+ между косой чертой, а также для последней части, чтобы URL-адрес не мог заканчиваться косой чертой.

^/uaa/api/users/[^/]+/city/[^/]+$

См. демонстрация регулярных выражений

Другие вопросы по теме