编辑1
我遇到了一个小问题,不管你信不信,我通常求助的那个人正在澳大利亚度蜜月,这是多么不体贴。
问题是我一直在尝试获取一个 boolean 值
,它可以让我知道文件路径是否正确。
问题是它总是返回 false,
我尝试了以下示例数据
c:\Lingerie\
c:\\Lingerie\\
c:\\
c:\
编辑
这是我迄今为止开发的输入屏幕。我已经考虑过有额外的空白,所以我已经弹出了修剪命令。
他们都返回了错误。 这是我正在使用的方法以及调用它的代码。
dbFilePath = (text.getText()).trim();
bool03 = busLog.isFilePath(dbFilePath);
System.out.println("The result is " + bool03);
调用的方法是
public boolean isFilePath(String filePath) {
return discreetLog.isFilePathMatched(filePath);
}
哪个调用
public boolean isFilePathMatched(String myFilePath){
String regularExpression = "([a-zA-Z]:)?(\\\\[a-zA-Z0-9_.-]+)+\\\\?";
Pattern pattern = Pattern.compile(regularExpression);
return Pattern.matches(regularExpression, myFilePath);
}
不知道是我的代码问题还是输入错误。
最佳答案
示例的第一个路径实际上与正则表达式正确匹配。
要匹配第二个和第四个,您必须允许使用双反斜杠。只需在正则表达式中前一个反斜杠的右侧添加 \\\\?
即可。
要匹配第三组和第四组,您需要将第二组设置为可选。目前它与运算符+
一起使用。请使用 *
代替。
因此,如果您将正则表达式替换为以下正则表达式:
String regularExpression = "([a-zA-Z]:)?(\\\\\\\\?[a-zA-Z0-9_.-]+)*\\\\?\\\\?";
它将匹配您的所有路径,仅此而已。
如果您仍然无法匹配示例数据,则说明代码中的其他地方存在问题。您可以尝试发布SSCCE .
关于java - 如何验证文件路径?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19964006/