我正在尝试创建一个正则表达式来匹配java中的文件路径
C:\ ABC\DEF\GHI \的abc.txt
我试过这个([a-zA-Z]:)?(\\[a-zA-Z0-9_-]+)+\\?,就像下面的代码一样
import java.util.regex.Pattern;
public class RETester {
public static void main(String arhs[]){
String regularExpression = "([a-zA-Z]:)?(\\[a-zA-Z0-9_-]+)+\\?";
String path = "D:\\directoryname\\testing\\abc.txt";
Pattern pattern = Pattern.compile(regularExpression);
boolean isMatched = Pattern.matches(regularExpression,path);
System.out.println(path);
System.out.println(pattern.pattern());
System.out.println(isMatched);
}
}
Run Code Online (Sandbox Code Playgroud)
然而它总是给我,结果是假的.请帮助我 .
谢谢
fal*_*tro 17
Java也正在使用反斜杠转义,所以你需要两次转义反斜杠,一次是Java字符串,一次是regexp.
"([a-zA-Z]:)?(\\\\[a-zA-Z0-9_.-]+)+\\\\?"
Run Code Online (Sandbox Code Playgroud)
你的正则表达式匹配文字'[ - zA-Z0-9_-'字符串和文字'?' 在末尾.我还在那里添加了一段时间来允许'abc.txt'..
也就是说,考虑使用另一种机制来确定有效的文件名,因为有不同的方案(即unix).如果路径无效,java.util.File可能会抛出异常,这可能是一个很好的选择,虽然我不喜欢使用控制流的异常...
| 归档时间: |
|
| 查看次数: |
48854 次 |
| 最近记录: |