我想讀取文件夾中不包含.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正則表達式排除括號