У меня небольшая проблема с использованием параметра регулярного выражения @Path.Я пытаюсь соответствовать пути а или б.Я пытался использовать:
@Path("/{a: path\\/to\\/resource|resource}")
Так что либо
http://localhost:1111/path/to/resource
или
http://localhost:1111/resource
выполнит один и тот же метод.Моя проблема, кажется, возникает, когда я использую две косые черты.Я могу получить доступ только к методу, используя
http://localhost:1111/resource
, но не другой.
Однако при выполнении:
@Path("/{a: path\\/resource|resource}")
Он работает как задумано, и я могу получить доступ к методу, используя
http://localhost:1111/path/resource
или
http://localhost:1111/resource.
Я попытался выполнить отрицательный анализ, чтобы исключить первую часть запроса и вернуть только общее свойство (ресурс):
@Path("/{a: (?!path\\/to\\/)resource}")
Но это тоже не сработало.Это имело тот же эффект, что и моя первая реализация, я мог получить доступ только к ресурсу.
Я также пытался:
@Path("/{a: (path\\/to)?}{b: (\\/)?}resource")
, который работал как предполагалось, но также работал, если я запрашивал
http://localhost:1111/path/toresource
или
http://localhost:1111//resource
Таким образом, создается 4 URL-адреса записей, когда я хочу иметь только два.
Я что-то упускаю из-закосые черты, почему мой шаблон регулярных выражений не может содержать более одной косой черты?