yozhic

Silver Member | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору AkulaBig (пост) Цитата: Не пойму, зачем пробелы и т.д. Они для любого набора символов одинаковые. | Для подсветки случаев типа Я_-_R, т.е. когда пробело-дефисы попадают между буквами кириллической и латинской. Подчеркну: все эти добавления очень индивидуальны, в зависимости от условий и задач, которые у всех разные. Цитата: Да, опять же индивидуальная особенность. Если известны наиболее часто встречающиеся в таких случаях слова, то можно было бы их исключить из детекта: Код: [a-z][а-яё]|[а-яё](?!Akel|Total|Windows)[a-z] | Тогда СборкиAkelPad и СборкиTotalCommander не подсветятся, а какие-нибудь СборкиMortalCommander — подсветятся. И если в слове Akеl буква е окажется русской, то подсветка сработает. Список исключений может быть и очень длинным, т.к. в PCRE, если не ошибаюсь, нет ограничений на длину регулярки. Но, естественно, это доп. анализ, и нужно будет иметь в виду, что в папках с гигантским кол-вом файлов теоретически возможны подтормаживания. Теперь об «ANSI и Юникоде». Кратко так: Код: [^0-9\x20\x21\x23-\x29\x2b-\x2e\x3b\x3d\x40\x5b\x5d\x5e_\x60\x7b\x7d\x7ea-zа-яёєїў ¤°·] | А подробнее: 1) Хорошо бы определиться, что именно мы понимаем под словом «ANSI». Это не праздный вопрос, достаточно ту же Вики почитать (подробности опускаю). При составлении регулярки я подразумевал, что речь о кодовой странице windows-1251. И тогда задача формулируется так: хочу подсветить имена файлов (sic!), в которых есть хоть один символ, не входящий в набор windows-1251. Соответственно, решение: перечислить все допустимые (sic!) в именах файлов символы win-1251, и инвертировать эту группу. (Кстати, понятие «Юникод» в нашем случае тоже условное. Потому что кириллица для страницы 1251 не будет «Юникодом», а для страницы 1253 — будет.) 2) Среди перечисленных есть такие, как [ ] { } — в именах файлов они не запрещены, но по-хорошему лучше бы их там не использовать. Кто согласен, убирайте из регулярки \x5b\x5d\x7b\x7d. |