【发布时间】:2016-12-24 17:42:42
【问题描述】:
在 Java 应用程序中,我需要编写一个包含 URI 正则表达式的 String,以便 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"
【问题讨论】:
-
您是在尝试匹配无效的 URL 还是有效的 URL?
-
你应该使用URI类提取之前的路径:download.java.net/jdk7/archive/b123/docs/api/java/net/URI.html
-
@CasimiretHippolyte 我不能。请参阅我对已接受答案的评论。我在 Spring 注释中使用它来过滤占位符。
-
投反对票的人,下次花两秒钟解释原因!
标签: java regex regex-negation