Строка соответствия шаблону глобуса в папке или в имени файла - PullRequest
0 голосов
/ 18 марта 2019

Мне нужно сопоставить слово «кеш» в папке или в имени файла, и оно также должно заканчиваться на .test.js

Пример:

    /Users/doge/lib/cache/index.js // should not match
    /Users/doge/lib/cache/index.test.js // should match
    /Users/doge/lib/something/index.test.js // should not match
    /Users/doge/lib/something/cache.test.js // should match

У меня естьпробовал /**/*cache*.test.js но это не похоже на работу.

1 Ответ

0 голосов
/ 18 марта 2019

Как насчет **/{*cache*/*,*cache*}.test.js? Это предполагает, что вы используете библиотеку minimatch (что вероятно, если вы работаете с JavaScript). Попробуйте использовать globster.xyz для проверки и улучшения вашего паттерна.

В упомянутом мною паттерне {} есть функция, которая называется расширением фигурных скобок. Этот шаблон будет расширен на два отдельных шаблона: один для сопоставления имени каталога и другой для сопоставления имени файла **/*cache*/*.test.js, **/*cache*.test.js. Это все еще не идеально, потому что папка, содержащая cache, должна быть ровно на один уровень выше самого файла, но, возможно, она подойдет вам.

...