ag: поиск во всех папках, за исключением folderName/subFolder (Perl Regex)

У меня есть эти папки, в которых есть подпапки...

locales/US/en
locales/US/fr
locales/FR/en
locales/FR/fr
locales/DE/en
locales/DE/fr
public
test
[...]

Я хочу, чтобы Серебряный Искатель игнорировал locales/* КРОМЕ для locales/US/en/* (по сути, я забочусь только о US/en файлы локалей)

Это работает, за исключением того, что он не показывает другие папки в корне (public и test):
ag -l -G '(locales)/(US)'

Я считаю, что AG использует Perl Regexes. Какие-нибудь мысли?

1 ответ

Если это регулярные выражения perl, это должно дать ожидаемый результат:

^(?:locales/US/en|(?!locales))

Объяснение:

^   = anchor regular expression to start of string.
(?: = group which is not captured
|   = Alternation for alternative capture
(?! = negative look ahead assertion - ensures that the string isnt starting with locales, unless it is starting with locales/US/en
Другие вопросы по тегам