Страница 3 из 13
Добавлено: Пт апр 06, 2007 09:28
Maximus
Ник
Не уверен, но попробуй с такими:
і - B3
ї - BF
є - BA
в чём разница с латинским "i" я не знаю, но она есть
Еще бы ее не было. Между латинским "c" и русским "с" разница же есть

Добавлено: Пт апр 06, 2007 11:33
Alextp
Ник
1. Попробовать варианты Maximus'а
2. Если не помогло: заархивировать файл WinRAR'ом, посмотреть дамп архива UV в hex режиме.

Добавлено: Пт апр 06, 2007 12:02
Maximus
Alextp
WinRAR при архивировании заменяет буквы "і" и "ґ" на символы подчеркивания. Поэтому не уверен, что что-то можно будет выяснить.
Добавлено: Пт апр 06, 2007 13:28
Alextp
Maximus, Nick:
как просмотреть коды символов в имени файла:
http://forum.wincmd.ru/viewtopic.php?p=27151#27151
Добавлено: Пт апр 06, 2007 17:31
Ник
Оказалось всё проще - имена файлов - это имена новостей, которые есть в теле файла, HEX-просмотр дал нужный результат.
Итак, I (укр) это B2, причём, если просто копи-паст - то она не заменяется на I (англ), если через HEX - то заменяется.
В то же время, i (укр) через копи-паст почему-то легко заменяется на i (англ).
Копи-паст ессно не напрямую из The Bat в ТК, а через понимающий Уникод текстовый редактор...
Добавлено: Вт дек 01, 2009 22:11
Вахмурка
Продолжаю собственный проект по сбору различных примеров применения регулярных выражений. Возможно, когда-то кто-то их отсортирует, отредактирует и положит в тихое теплое место (типа ТСКВ)...
Есть файлы типа
Код: Выделить всё
IMG_0075.jpg
IMG_0078.jpg
IMG_0084.jpg
IMG_0526.jpg
Изображение 367.jpg
Изображение в2.jpg
Изображение в4.jpg
Требуется удалить "буквенную" часть имени, то есть получить
Код: Выделить всё
0075.jpg
0078.jpg
0084.jpg
0526.jpg
367.jpg
2.jpg
4.jpg
Ответы:
Rodny:
Найти: (\D)+(\d+\..+)
Заменить: $2
Tol!k:
Найти: (\..+)|\D
Заменить: $1
Моторокер:
Найти: ^\D+
Заменить: <Пусто>
Подробности
здесь.
Добавлено: Ср дек 02, 2009 08:01
D1P
Вахмурка
А самому в тихое место выложить что мешает?
Добавлено: Ср дек 02, 2009 09:52
Вахмурка
Незнание предмета. Видишь, люди аж три варианта предложили, а я и одного осилить не смог. Хотя с более простыми задачами вроде справляюсь.
Следовательно, моя низкая компетентность не позволит оценить, насколько тот или иной пример сложен/важен/типичен, и т. д. Для такой работы нужен кто-то более подготовленный и подкованный.
Добавлено: Ср дек 02, 2009 15:55
Lev
Для подкованного многие регекспы покажутся примитивными и он не станет их никуда включать. Тут как раз лучше начинающий-середнячок.
по регекспам
Они сработают на данных в примере файлах, но пользователь может обработать ими все файлы в директории в т.ч. не совсем соответствующие примерам, например без цифр в имени, с несколькими точками, с цифрами перемежающимися буквами. Как уже упоминалось в обсуждении пример от Rodny работает перед первой точкой в имени файла - удалит последовательность нецифр перед цифрами с последующей точкой. Имхо первое экранирование в регекспе излишне. Можно убрать первые скобки и менять на $1, результат действия не изменится. Для меня данный регексп не совсем корректен как пример для обучения.
Пример от Tol!k убъёт все нецифры в имени файла оставив от файлов без цифр в имени только расширения.
Пример Моторокер'а удалит первую примыкающую к началу файла нецифровую последовательность, так же убив имена файлов без цифр.
Ещё раз повторю, что для приведённых примеров имён регекспы сработают правильно, но стоило бы составить более безопасное регулярное выражение.
Добавлено: Ср дек 02, 2009 23:44
Tol!k
Lev, всё раскритиковал, и ничего не предложил взамен :)
Вахмурка
Самый безопасный вариант, вроде бы, такой (получен из варианта Rodny, как из наиболее безопасного из предложеных)
Найти: ^(\D+)(\d+\..+)
Заменить: $2
=
Найти: ^\D+(\d+\..+)
Заменить: $1
Добавлено: Чт дек 03, 2009 11:10
Вахмурка
2Lev
Вот такого, как ты, я и имел в виду: ты не только можешь составить рег. выр-е, не только разобрать имеющееся, но и сделать выводы о его "безопасности", "универсальности" и т.д. Мне это пока недоступно (а учитывая то, как редко я ими пользуюсь, таковым и останется). Может, возьмешься? Если мой пример не покажется тебе примитивным, включи его. И вообще поиском по форуму можно много полезного найти. Причем если в интернете есть многое, посвященное рег. выр-ям как таковым, вообще, то здесь следует сосредоточиться на рег. выр-ях в именах файлов (пока бог с ним, с текстом). Постоянно мелькают примеры и вопросы: заменить латинское "с" на русское, " " на "_", и т.д.
Добавлено: Чт дек 03, 2009 14:28
Rodny
Не делайте из еды^Wрегэкспов культа
Универсальность и безопасность — это хорошо, вопросов нет. К этому надо стремиться.
Но чаще всего задачи имеют ряд дополнительных условий, исходя из которых уже и делается вывод о необходимости тех или иных мер.
Если задача разовая, на ограниченном наборе имён, то особого смысла её оптимизировать нету, имхо.
А если это пойдёт как образец для обучения, то тут уже другое отношение.
Добавлено: Чт дек 03, 2009 14:55
Вахмурка
См. заголовок. "Knowledge Base - База знаний" - это что? Сборник готовых рецептов (читай - справочник), или учебник, дающий пищу для размышлений? По хорошему вопрос к D1P, как к автору всего этого безобразия. Мое мнение - на текущий момент скорее учебник, причем хорошо бы ей, базе, таковым и остаться. Следовательно, если Rodny или Lev на примере нескольких случаев изложат курс под рабочим названием "Регулярные выражения в ТС для продвинутых чайников", то "будет так хорошо-хорошо, ну прямо как при царе" ((С) старый анекдот).
Добавлено: Чт дек 03, 2009 15:27
D1P
Вахмурка писал(а):По хорошему вопрос к D1P, как к автору всего этого безобразия.
Это будет тем, чем вы это сделаете. Мне тоже ближе концепция учебника, но и готовые решения тоже приветствуются.
Добавлено: Чт дек 03, 2009 16:39
Lev
Имхо для начала вполне достаточно того, что есть в хелпе Тотала. К сожалению сайт автора реализации регулярных выражений использованных Гислером в Тотале линк на который есть в конце странички [s]умер[/s] у меня не открывается, но чего-то можно раскопать через
web.archive.org - тут можно почитать чуть более расширенную информация, причём именно по тому движку, что использует Тотал. А тем кто желает продвинуться, я посоветовал бы почитать - Дж. Фридл "Регулярные выражения". Ну и
wiki с остальным интернетом в помощь.