Регулярное выражение для игнорирования файлов, которые начинаются и заканчиваются последовательностью

Я использую Sublime Text 2 и пытаюсь отфильтровать любые файлы, которые не начинаются с последовательности строк или заканчиваются последовательностью строк.

Вот несколько примеров с моим желаемым результатом:

AAA.123.ZZZ = TRUE
AAA.MY.SPECIAL.FILE.ZZZ = TRUE

ABC.123.ZZZ = FALSE
AAA.123.XYZ = FALSE
/SUBFOLDERNAME = FALSE
FILE NAME WITH WHITESPACE.TXT = FALSE

Я использую следующее выражение, но многие файлы проходят через фильтр:

^(?!AAA\..*\.ZZZ$)[\w\.-]+$

Я хочу включить это регулярное выражение в конфигурацию Sublime Text 2 SFTP в разделе «ignore_regexes».

Я понимаю, что это двойное отрицание (используя игнорирование обратного совпадения), но я хочу иметь возможность заменить AAA и ZZZ, чтобы только файлы, начинающиеся с AAA. и заканчивающиеся на .ZZZ, включались Sublime SFTP.


person Bibble    schedule 19.09.2013    source источник
comment
Итак, что вам на самом деле нужно, так это регулярное выражение, которое соответствует всем кроме файлов, которые начинаются с AAA и заканчиваются на .ZZZ? Если вы можете подтвердить это, я отвечу регулярным выражением, которое делает это :)   -  person Jeff Escalante    schedule 19.09.2013
comment
Да, это правильно, @jeff-escalante.   -  person Bibble    schedule 19.09.2013
comment
Спасибо, @alan-moore, за редактирование.   -  person Bibble    schedule 19.09.2013


Ответы (1)


Я не знаю, можете ли вы найти что-то более простое, но, похоже, работает следующее:

^(?!AAA\.).*|.*(?<!\.ZZZ)$

как показано на http://rubular.com/r/3yUXh0TOfE.

Или, если вам нужно избежать отрицательного взгляда назад, вы можете использовать:

^(?!AAA\.).*|.*(?!\.ZZZ).{4}$

как показано на http://rubular.com/r/VUd3yAQTzl.

person Peter Alfvin    schedule 19.09.2013
comment
Спасибо, но это не работает для меня. Возможно, Sublime SFTP не поддерживает отрицательный просмотр назад. Если я переключу версию Ruby на 1.8.7, там тоже произойдет сбой. - person Bibble; 19.09.2013
comment
Если я не ошибаюсь, возвышенное использует python за кулисами - это может иметь какое-то отношение к этому? - person Jeff Escalante; 20.09.2013
comment
Хм. Я проверил Sublime 2 с помощью команды find, и она сработала, как и ожидалось. Я не знаком с Sublime SFTP. - person Peter Alfvin; 20.09.2013
comment
Хорошо, теперь я понимаю, что Sublime SFTP не имеет ничего общего с Sublime 2 (текстовым редактором). Извини за это. - person Peter Alfvin; 20.09.2013
comment
Смотрите обновление. Я не уверен, есть ли другие способы избежать негативного взгляда назад. - person Peter Alfvin; 20.09.2013
comment
Я отмечаю это как ответ, поскольку регулярное выражение верно. Я обнаружил странную проблему рабочего процесса в Sublime SFTP, которая позволит мне правильно фильтровать файлы с помощью этого выражения, но не будет загружать или загружать, потому что фильтр также применяется к действию загрузки при изменении локального файла. Спасибо всем за помощь! - person Bibble; 20.09.2013