我正在尝试匹配可行的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$
答案 0 :(得分:0)
贪婪地使用.+
会捕获任何字符,因此在末尾找到package.json
总是会尽可能地匹配。如果您改用[^\/]+
,则它将仅匹配非/
的字符,并确保package.json
仅在node_modules/
下一个目录之后才匹配。>
^.+\/node_modules\/[^\/]+\/package.json$