我需要在文件夹路径中提取文件所在的目录。为此,我创建了一个简单的正则表达式。以下是示例路径\\myvdi\Prod\2014\10\LTCG\LTCG_v2306_03_07_2014_1226.pfd
下面的正则表达式将找到我需要的内容,但我的问题是将其存储到变量中。这就是我在下面的内容。它在字符串数组中失败
String[] temp = targetFile.split("\\.*\\");
folder = temp[0];
建议?
谢谢!
修改
引发的异常是:java.util.regex.PatternSyntaxException: Unexpected internal error near index 4
答案 0 :(得分:2)
如果您的文件系统中的路径有效,我建议您不要使用正则表达式并使用File
对象:
String path = "\\myvdi\\Prod\\2014\\10\\LTCG\\LTCG_v2306_03_07_2014_1226.pfd";
File file = new File(path);
System.out.println(file.getParent());
<强>输出强>
\\myvdi\\Prod\\2014\\10\\LTCG\\
答案 1 :(得分:0)
简单地说,您需要:
String path = "\\myvdi\\Prod\\2014\\10\\LTCG\\LTCG_v2306_03_07_2014_1226.pfd";
String dir = path.substring(0, path.lastIndexOf("\\") + 1);
答案 2 :(得分:0)
你应该使用Pattern&amp;比较强大的匹配者;从你的描述我不确定你是否想要获得整个文件夹路径,但如果是,这是一个解决方案:
String s = "\\\\myvdi\\Prod\\2014\\10\\LTCG\\LTCG_v2306_03_07_2014_1226.pfd";
Pattern p = Pattern.compile("^(\\\\+[a-zA-Z0-9_-]+\\\\+([a-zA-Z0-9_-]+\\\\+)+).+$");
Matcher m = p.matcher(s);
if(m.matches()){
System.out.println(m.group(m.groupCount()-1));
}