В приложении Java, мне нужно написать String
, содержащую регулярное выражение для URI, так что URI не содержит последовательности символов, как .js?
, .css?
и .jpg?
, но и не заканчивая .js
, .css
и .jpg
Regex для сопоставления строки не заканчивается или содержащие расширения файлов
Я сделал следующее:
(?:.js|.css|.jpg)$|(?:.js[?]|.html[?]|.jpg[?])
Которые в основном соответствует всем URI, оканчивающиеся с заданными расширениями файлов или содержащие расширение файла плюс Цюй знак эстиона.
Как я могу отрицать предыдущие условия?
Так, например, я ожидаю, что следующий URI будет соответствовать
"https://stackoverflow.com/a/fancy/uri/.js/which/is/valid"
но и следующие будут не
"https://stackoverflow.com/a/fancy/uri/which/is/invalid.js"
"https://stackoverflow.com/a/fancy/uri/which/is/invalid.js?ver=1"
Вы пытаетесь соответствовать недействительных URL, или действительным URL-адрес? – shmosel
Вы должны использовать класс URI для извлечения пути до: http://download.java.net/jdk7/archive/b123/docs/api/java/net/URI.html –
@CasimiretHippolyte Я не могу. См. Мой комментарий к принятому ответу. Я использую его в аннотации Spring, чтобы отфильтровать местозаполнитель. –