我要删除此文件路径的某些部分:
C:\ Users \ room \ Desktop \ dev \ myapp \ node / 数据 // test / nested / 74201820018PM-AI2.jpg
我想要在“数据”之后的路径名,例如 /test/nested/74201820018PM-AI2.jpg
编辑:此文件路径来自Windows操作系统。我希望正则表达式可用于Windows或Linux。
答案 0 :(得分:2)
您只需要将 a regex 与匹配组一起使用,如下所示:
/\/data\/(.+)$/
说明:
\/
与字符/按字面值匹配(区分大小写)data
从字面上匹配字符数据(区分大小写)\/
与字符/按字面值匹配(区分大小写)第一捕获组(。+)
.+
匹配任何字符(行终止符除外)-量词-+
匹配一次和无限制次数,尽可能多地匹配,并根据需要返回(贪婪)
$
在字符串末尾或行之前断言位置
终止符位于字符串的末尾(如果有的话)
注意:
要使其与Windows
和Linux
路径兼容,您需要更新 the regex ,以便同时使用/
和{{1 }}:
\
演示:
[\/\\]data[\/\\](.+)$
要删除此文件的第一部分var str = "C:\Users\room\Desktop\dev\myapp\node/data//test/nested/74201820018PM-AI2.jpg";
var match = str.match(/\/data\/(.+)$/);
console.log(match[1]);
您可以使用 an inversed regex 来匹配path
的第一部分,并使用path
将其从string
中删除:>
.replace(regex, '')
演示:
^(.+[\/\\]data[\/\\])
答案 1 :(得分:0)
尝试一下。它检查其余字符是否以字符串data/
var str = "C:\Users\room\Desktop\dev\myapp\node/data//test/nested/74201820018PM-AI2.jpg";
console.log(str.match(/(?<=data\/).+$/)[0]);
答案 2 :(得分:0)
恐怕:
data
有时可能会更改为其他字符串,因此您的代码应:
类似result = my_path.replace(/.*\/\//,"/");