Regex 用于匹配yaml文件的正则表达式
我有下一个包含yaml文件的目录路径:Regex 用于匹配yaml文件的正则表达式,regex,string,regex-negation,regex-group,regex-greedy,Regex,String,Regex Negation,Regex Group,Regex Greedy,我有下一个包含yaml文件的目录路径: test/1.yaml test/dev.yaml test/dev0_r.yaml 等等 如何匹配test/directory中的所有yaml文件,而不是test/test1/dev.yaml这样的子目录中的所有yaml文件 我试图使用全球化: test/*.yaml 但这对我来说不起作用 我怎样才能做到呢 这里,我们将在testdir之后添加一个非斜杠字符类条件,以仅通过第一个目录,其表达式类似于: ^test\/[^\/]+\.yaml$
test/1.yaml
test/dev.yaml
test/dev0_r.yaml
等等
如何匹配test/directory中的所有yaml文件,而不是test/test1/dev.yaml这样的子目录中的所有yaml文件
我试图使用全球化:
test/*.yaml
但这对我来说不起作用
我怎样才能做到呢 这里,我们将在
test
dir之后添加一个非斜杠字符类条件,以仅通过第一个目录,其表达式类似于:
^test\/[^\/]+\.yaml$
如果我们愿意,我们可以增加/减少我们的边界。例如,我们可以放下开始和结束锚,它可能仍然有效:
test\/[^\/]+\.yaml
const regex=/^test\/[^\/]+\.yaml$/gm;
const str=`test/1.yaml
测试/开发yaml
测试/开发
test/test1/dev.yaml`;
让m;
while((m=regex.exec(str))!==null){
//这是避免具有零宽度匹配的无限循环所必需的
if(m.index==regex.lastIndex){
regex.lastIndex++;
}
//可以通过'm`-变量访问结果。
m、 forEach((匹配,组索引)=>{
log(`Found match,group${groupIndex}:${match}`);
});
}
在这里,我们将在测试
目录之后添加一个非斜杠字符类条件,以仅通过第一个目录,其表达式类似于:
^test\/[^\/]+\.yaml$
如果我们愿意,我们可以增加/减少我们的边界。例如,我们可以放下开始和结束锚,它可能仍然有效:
test\/[^\/]+\.yaml
const regex=/^test\/[^\/]+\.yaml$/gm;
const str=`test/1.yaml
测试/开发yaml
测试/开发
test/test1/dev.yaml`;
让m;
while((m=regex.exec(str))!==null){
//这是避免具有零宽度匹配的无限循环所必需的
if(m.index==regex.lastIndex){
regex.lastIndex++;
}
//可以通过'm`-变量访问结果。
m、 forEach((匹配,组索引)=>{
log(`Found match,group${groupIndex}:${match}`);
});
}
您使用的是shell globbing还是regex?您使用的是shell globbing还是regex?您应该使用+
量词,而不是*
+1回答得很好@Emma。你应该使用+
量词,而不是*
+1回答得好@Emma。