在Java应用程序中,我需要编写一个String
包含正则表达式的URI,以便URI不包含.js?
,.css?
和等字符序列.jpg?
,但也不以.js
,.css
和结尾.jpg
我做了以下事情:
(?:.js|.css|.jpg)$|(?:.js[?]|.html[?]|.jpg[?])
基本上匹配所有以给定文件扩展名结尾或包含文件扩展名和问号的URI。
如何排除和条件?
因此,举例来说,我希望以下URI能够匹配
"/a/fancy/uri/.js/which/is/valid"
但是以下两个都不会
"/a/fancy/uri/which/is/invalid.js"
"/a/fancy/uri/which/is/invalid.js?ver=1"
在否定的情况下使用两种替代方法:
^(?!.*\.(js|css|jpg)($|\?)).*
此正则表达式匹配有效输入。在Java中:
if (url.matches("^(?!.*\\.(js|css|jpg)($|\\?)).*")
// url is OK
如果要匹配无效输入,请使用积极的态度:
if (url.matches("^(?=.*\\.(js|css|jpg)($|\\?)).*")
// url is not OK
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句