我想读取文件夹中不包含.temp
作为扩展名。我想为此使用正则表达式。你如何使用正则表达式中的排除来做到这一点?正则表达式中排除
Q
正则表达式中排除
0
A
回答
2
这部分讲述寻找一个特定的字符数组:[0-9]
。如果你想排除它,你只需在它前面添加一个^
(意思是“不”)。像[^0-9]
为“不是一个号码”。
因此,要回答你的问题,你会有这个正则表达式中:
^((?!\.temp).)*$
这上述正则表达式将匹配任何行不包含.temp
0
知道这是不是正则表达式,但为便于阅读,我会使用
!fileName.endsWith(".temp")
2
不要打扰,只是否定测试:
private static final Pattern NOTME = Pattern.compile("\\.temp$");
// in code
if (NOTME.matcher(input).find())
// illegal!
不过说真的,你应该使用:
if (input.endsWith(".temp"))
// illegal
另外,如果你使用Java 7,请沟File
与Files
和Path
去。
0
你可以尝试这样的事情,基于Java的接口的FilenameFilter:
package dk.tbsalling;
import java.io.File;
import java.io.FilenameFilter;
public class FileDemo {
public static void main(String[] args) {
File f = null;
File[] paths;
try{
f = new File("d:/tmp");
FilenameFilter fileNameFilter = new FilenameFilter() {
@Override
public boolean accept(File dir, String name) {
return name.matches(".+(?<!\.temp)");
}
};
paths = f.listFiles(fileNameFilter);
for(File path:paths)
{
System.out.println(path);
}
}catch(Exception e){
e.printStackTrace();
}
}
}
相关问题
- 1. 正则表达式排除&#
- 2. 正则表达式排除
- 3. 正则表达式:排除
- 4. 正则表达式 - 排除
- 5. 正则表达式排除
- 6. 正则表达式排除表达
- 7. Python中的正则表达式排除
- 8. 从正则表达式在C++中排除的子表达式
- 9. 从另一个正则表达式中排除一个正则表达式
- 10. 正则表达式从正则表达式中排除1个字
- 11. 正则表达式,排除了字
- 12. XCOPY正则表达式排除名称
- 13. 正则表达式排除的话
- 14. 正则表达式排除重复值
- 15. 正则表达式排除字符
- 16. 正则表达式排除捕获
- 17. 排除与正则表达式
- 18. 正则表达式排除字
- 19. 正则表达式排除结束
- 20. 前缀排除的正则表达式
- 21. 正则表达式来排除字符
- 22. 正则表达式来排除URL的
- 23. 正则表达式 - 排除不需要
- 24. 找到与正则表达式排除
- 25. 正则表达式排除字符串
- 26. 正则表达式排除类别
- 27. 正则表达式排除μ从[\ W_]
- 28. 正则表达式来排除文件
- 29. 正则表达式排除字符串
- 30. JavaScript正则表达式排除括号