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);