匹配嵌套在特定文件夹中的文件

时间:2019-01-04 05:44:38

标签: javascript regex match

我正在尝试匹配可行的package.json文件以将目录中的所有模块(包括嵌套模块)获取。我遇到一个问题,即某人的模块中有两个package.json文件。一在根中,一在巢中。我只想将正则表达式与第一行而不是第二行匹配。我是否必须使用path.sep将字符串解析为数组,还是可以仅使用正则表达式来做到这一点?

/Users/thomas/Desktop/exmaple/node_modules/stream-http/package.json
/Users/thomas/Desktop/exmaple/node_modules/stream-http/test/browser/package.json

模式

^.+\/node_modules\/.+\/package.json$

https://regexr.com/45qvr

1 个答案:

答案 0 :(得分:0)

贪婪地使用.+会捕获任何字符,因此在末尾找到package.json总是会尽可能地匹配。如果您改用[^\/]+,则它将仅匹配非/的字符,并确保package.json仅在node_modules/下一个目录之后才匹配。

^.+\/node_modules\/[^\/]+\/package.json$