var s = '/home/src/_layouts/default.pug';// I wanna '_layouts/default'
var regex = /(src\/.*)/;
var m = s.match(regex);
var t = m[0].match(/([^(src\/)].*)(?=\..*$)/)[0];
console.log(t);// outputs "_layouts/default"
它有效但不够优雅,我想更有效率,任何人都可以帮助我?谢谢。
答案 0 :(得分:1)
你所追求的正则表达式是/src\/([^.]*)\..+/
。
它将匹配src
,然后捕获点之前的所有内容。 [^.]
是一个否定的字符类(“匹配除了这些字符之外的所有内容”),这意味着它只获取文件名而不是扩展名。
答案 1 :(得分:0)
这个正则表达式怎么样:
src\/(.*)\.\w+
在Regex101上试用:https://regex101.com/r/bW2qS6/1
您的JS代码将是:
var s = '/home/src/_layouts/default.pug';
var t = s.match(/src\/(.*)\.\w+/)[1];
console.log(t);