Regex 用于匹配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$

我有下一个包含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。