【发布时间】:2015-04-01 17:14:23
【问题描述】:
我正在以自己的方式解决this problem。我正在尝试将文件路径拆分为驱动器、文件夹和文件名,全部拆分为一个数组。
问题:
String regex = "\\";
String [] divisions = path.split (regex);
这给了我一个 java.util.regex.PatternSyntaxException。我查了wiki,发现[\b]
String regex = "[\b]";
String [] divisions = path.split (regex);
这不起作用。它不会抛出异常,也不会根据退格键拆分我的文件路径。
输入:
► Enter path --
C:\User\Admin\NekedGaben.jpg
输出:
→ Path = C:\User\Admin\NekedGaben.jpg
→ File name = C:\User\Admin\NekedGaben
→ Extension = .jpg
我的问题:
- 为什么
"\\"会抛出异常,而"[\b]"不会? - 为什么
split()不拆分路径字符串?
【问题讨论】:
-
什么是正则表达式中的
\? (不是"\\",这是一个字符串字面量。) -
您想更仔细地阅读 wiki:
[\b]匹配后退空格,而不是后退斜杠。为什么要匹配退格键?我不知道,我从来不需要。但是\b本身匹配一个词的边界,不能表示在一个字符类里面,所以它的意思随意的变成了退格。
标签: java arrays regex string exception