我以自己的方式解决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()
没有拆分路径字符串?答案 0 :(得分:5)
你应该在Java正则表达式中使用双重转义,即:
String regex = "\\\\";
或使用静态Pattern.quote(String)
方法:
String regex = Pattern.quote("\\");
答案 1 :(得分:2)
因为\b
是单个字符,编译器知道它,他们就是朋友。
但是反斜杠(\
)在Java中由\\
表示,而\
是无效正则表达式,为了逃避它,您应该使用:
\\\\
↓ ↓
escaping
解决方案:
Pattern#quote
为你处理