首页 > 解决方案 > 嵌套witin特定文件夹中的匹配文件

问题描述

我正在尝试匹配可行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

标签: javascriptregexmatch

解决方案


使用.+贪婪捕获任何字符,因此它总是会尽可能匹配到package.json最后找到a。如果你改用[^\/]+它,它只会匹配不是 . 的字符,/确保 .package.json只匹配node_modules/.

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

推荐阅读