Файл соответствия внутри вложенной конкретной папки - PullRequest
0 голосов
/ 04 января 2019

Я пытаюсь сопоставить жизнеспособные 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

Pattern

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

https://regexr.com/45qvr

1 Ответ

0 голосов
/ 04 января 2019

Использование .+ жадно ловит любые символы, поэтому он всегда будет максимально совпадать, чтобы найти package.json в конце.Если вместо этого вы используете [^\/]+, он будет соответствовать только символам, отличным от /, убедившись, что package.json соответствует только одному каталогу в node_modules/.

^.+\/node_modules\/[^\/]+\/package.json$
.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...