我正在尝试分割任意文件路径,例如:
"c:\\directory\\another_directory\\filename.ext"
(Windows操作系统)
OR
"c:/directory/another_directory/filename.ext"
(UNIX)
放入一个数组,由“ \\”或“ /”分隔(取决于在其中读取文件路径字符串的操作系统)。
所需的输出是一个数组,例如:
['c:', 'directory', 'another_directory', 'filename.txt']
在分割方法中可以使用的正则表达式是什么?
str.split(new RegExp(/(\\|/)/i))
(无效的正则表达式)
预先感谢您的帮助。
答案 0 :(得分:3)
使用.match
,并匹配既不是斜杠也不是反斜杠的字符:
const doSplit = str => str.match(/[^/\\]+/g);
console.log(doSplit(String.raw`c:\\directory\\another_directory\\filename.ext`));
console.log(doSplit("c:/directory/another_directory/filename.ext"));