This question already has an answer here:
How to restrict some file types and allow all others in Regular expression Asp.net
(1个答案)
2年前关闭。
我试图找到一个正则表达式,它允许没有某些扩展名的文件名。例如:
test.pdf =>确定
test.exe => ko
test.tmp => ko
test.EXE => ko
test.PDF =>确定
我不能使用end,因为我必须将整个RegEx放在.properties文件中。
我尝试了
编辑:这不是REGEX for any file extension的重复,因为我需要忽略某些扩展名。那不是另一个问题的目的。
输出:
(1个答案)
2年前关闭。
我试图找到一个正则表达式,它允许没有某些扩展名的文件名。例如:
test.pdf =>确定
test.exe => ko
test.tmp => ko
test.EXE => ko
test.PDF =>确定
我不能使用end,因为我必须将整个RegEx放在.properties文件中。
我尝试了
^.*\.(^exe|^tmp)$
,但是它根本不起作用。编辑:这不是REGEX for any file extension的重复,因为我需要忽略某些扩展名。那不是另一个问题的目的。
最佳答案
希望这会有所帮助!
public class StackOverflowQuestion45321328 {
public static void main(String[] args) {
List<String> data = new ArrayList();
data.add("test.pdf");
data.add("test.exe");
data.add("test.tmp");
data.add("test.EXE");
data.add("test.PDF");
String regex = "^.*(?<!exe|tmp)$";
Pattern pattern = Pattern.compile(regex, Pattern.CASE_INSENSITIVE);
for (String filename : data) {
Matcher matcher = pattern.matcher(filename);
boolean isMatchingPattern = matcher.matches();
System.out.println(filename + " : " + isMatchingPattern);
}
}
}
输出:
test.pdf : true
test.exe : false
test.tmp : false
test.EXE : false
test.PDF : true
10-06 06:19