Regex 有没有更有效的方法来过滤正则表达式匹配字符串?

Regex 有没有更有效的方法来过滤正则表达式匹配字符串?,regex,Regex,它可以工作,但不够优雅,我想做得更有效率,有人能帮我吗?谢谢 这个正则表达式呢: 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/def

它可以工作,但不够优雅,我想做得更有效率,有人能帮我吗?谢谢

这个正则表达式呢:

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"
在Regex101上试用:

您的JS代码将是:

src\/(.*)\.\w+

您要查找的正则表达式是
/src\/([^.]*)\..+/


它将匹配
src
,然后捕获点之前的所有内容
[^.]
是一个否定的字符类(“匹配除这些字符以外的所有字符”),这意味着它将只获取文件名,而不获取扩展名。

您应该详细说明所需的行为。
var s = '/home/src/_layouts/default.pug';
var t = s.match(/src\/(.*)\.\w+/)[1];
console.log(t);