К ТСКВ: примеры регулярных выражений
Select messages from
# through # FAQ
[/[Print]\]
Goto page Previous  1, 2, 3, 4, 5, 6, 7, 8, 9  Next  :| |:
Total Commander -> Общие вопросы
Как часто вы пользуетесь регулярными выражениями (RegEx)?
Раз в день
35%
 35%  [ 33 ]
Раз в неделю
18%
 18%  [ 17 ]
Раз в месяц
26%
 26%  [ 25 ]
А что это такое?
20%
 20%  [ 19 ]
Total Votes : 94


#31:  Author: MaximusLocation: Украина, Кировоградская обл., г. Знаменка PostPosted: Fri Apr 06, 2007 09:28
    —
Ник
Не уверен, но попробуй с такими:
і - B3
ї - BF
є - BA

Quote:
в чём разница с латинским "i" я не знаю, но она есть
Еще бы ее не было. Между латинским "c" и русским "с" разница же есть Smile

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

#33:  Author: MaximusLocation: Украина, Кировоградская обл., г. Знаменка PostPosted: Fri Apr 06, 2007 12:02
    —
Alextp
WinRAR при архивировании заменяет буквы "і" и "ґ" на символы подчеркивания. Поэтому не уверен, что что-то можно будет выяснить.

#34:  Author: Alextp PostPosted: Fri Apr 06, 2007 13:28
    —
Maximus, Nick:
как просмотреть коды символов в имени файла:
http://forum.wincmd.ru/viewtopic.php?p=27151#27151

#35:  Author: НикLocation: Москва PostPosted: Fri Apr 06, 2007 17:31
    —
Оказалось всё проще - имена файлов - это имена новостей, которые есть в теле файла, HEX-просмотр дал нужный результат.

Итак, I (укр) это B2, причём, если просто копи-паст - то она не заменяется на I (англ), если через HEX - то заменяется.
В то же время, i (укр) через копи-паст почему-то легко заменяется на i (англ).

Копи-паст ессно не напрямую из The Bat в ТК, а через понимающий Уникод текстовый редактор...

#36:  Author: ВахмуркаLocation: Большая деревня Москва PostPosted: Tue Dec 01, 2009 23:11
    —
Продолжаю собственный проект по сбору различных примеров применения регулярных выражений. Возможно, когда-то кто-то их отсортирует, отредактирует и положит в тихое теплое место (типа ТСКВ)...

Есть файлы типа
Code:
IMG_0075.jpg
IMG_0078.jpg
IMG_0084.jpg
IMG_0526.jpg
Изображение 367.jpg
Изображение в2.jpg
Изображение в4.jpg
Требуется удалить "буквенную" часть имени, то есть получить
Code:
0075.jpg
0078.jpg
0084.jpg
0526.jpg
367.jpg
2.jpg
4.jpg

Ответы:

Rodny:
Найти: (\D)+(\d+\..+)
Заменить: $2

Tol!k:
Найти: (\..+)|\D
Заменить: $1

Моторокер:
Найти: ^\D+
Заменить: <Пусто>

Подробности здесь.

#37:  Author: D1PLocation: Москва PostPosted: Wed Dec 02, 2009 09:01
    —
Вахмурка
А самому в тихое место выложить что мешает?

#38:  Author: ВахмуркаLocation: Большая деревня Москва PostPosted: Wed Dec 02, 2009 10:52
    —
Незнание предмета. Видишь, люди аж три варианта предложили, а я и одного осилить не смог. Хотя с более простыми задачами вроде справляюсь.
Следовательно, моя низкая компетентность не позволит оценить, насколько тот или иной пример сложен/важен/типичен, и т. д. Для такой работы нужен кто-то более подготовленный и подкованный.

#39:  Author: Lev PostPosted: Wed Dec 02, 2009 16:55
    —
Для подкованного многие регекспы покажутся примитивными и он не станет их никуда включать. Тут как раз лучше начинающий-середнячок.

по регекспам
Они сработают на данных в примере файлах, но пользователь может обработать ими все файлы в директории в т.ч. не совсем соответствующие примерам, например без цифр в имени, с несколькими точками, с цифрами перемежающимися буквами. Как уже упоминалось в обсуждении пример от Rodny работает перед первой точкой в имени файла - удалит последовательность нецифр перед цифрами с последующей точкой. Имхо первое экранирование в регекспе излишне. Можно убрать первые скобки и менять на $1, результат действия не изменится. Для меня данный регексп не совсем корректен как пример для обучения.
Пример от Tol!k убъёт все нецифры в имени файла оставив от файлов без цифр в имени только расширения.
Пример Моторокер'а удалит первую примыкающую к началу файла нецифровую последовательность, так же убив имена файлов без цифр.
Ещё раз повторю, что для приведённых примеров имён регекспы сработают правильно, но стоило бы составить более безопасное регулярное выражение.

#40:  Author: Tol!kLocation: Арзамас PostPosted: Thu Dec 03, 2009 00:44
    —
Lev, всё раскритиковал, и ничего не предложил взамен :)
Вахмурка
Самый безопасный вариант, вроде бы, такой (получен из варианта Rodny, как из наиболее безопасного из предложеных)
Найти: ^(\D+)(\d+\..+)
Заменить: $2
=
Найти: ^\D+(\d+\..+)
Заменить: $1

#41:  Author: ВахмуркаLocation: Большая деревня Москва PostPosted: Thu Dec 03, 2009 12:10
    —
2Lev
Вот такого, как ты, я и имел в виду: ты не только можешь составить рег. выр-е, не только разобрать имеющееся, но и сделать выводы о его "безопасности", "универсальности" и т.д. Мне это пока недоступно (а учитывая то, как редко я ими пользуюсь, таковым и останется). Может, возьмешься? Если мой пример не покажется тебе примитивным, включи его. И вообще поиском по форуму можно много полезного найти. Причем если в интернете есть многое, посвященное рег. выр-ям как таковым, вообще, то здесь следует сосредоточиться на рег. выр-ях в именах файлов (пока бог с ним, с текстом). Постоянно мелькают примеры и вопросы: заменить латинское "с" на русское, " " на "_", и т.д.

#42:  Author: RodnyLocation: Могилёв, Беларусь PostPosted: Thu Dec 03, 2009 15:28
    —
Не делайте из еды^Wрегэкспов культа Smile
Универсальность и безопасность — это хорошо, вопросов нет. К этому надо стремиться.
Но чаще всего задачи имеют ряд дополнительных условий, исходя из которых уже и делается вывод о необходимости тех или иных мер.
Если задача разовая, на ограниченном наборе имён, то особого смысла её оптимизировать нету, имхо.
А если это пойдёт как образец для обучения, то тут уже другое отношение.

#43:  Author: ВахмуркаLocation: Большая деревня Москва PostPosted: Thu Dec 03, 2009 15:55
    —
См. заголовок. "Knowledge Base - База знаний" - это что? Сборник готовых рецептов (читай - справочник), или учебник, дающий пищу для размышлений? По хорошему вопрос к D1P, как к автору всего этого безобразия. Мое мнение - на текущий момент скорее учебник, причем хорошо бы ей, базе, таковым и остаться. Следовательно, если Rodny или Lev на примере нескольких случаев изложат курс под рабочим названием "Регулярные выражения в ТС для продвинутых чайников", то "будет так хорошо-хорошо, ну прямо как при царе" ((С) старый анекдот).

#44:  Author: D1PLocation: Москва PostPosted: Thu Dec 03, 2009 16:27
    —
Вахмурка wrote:
По хорошему вопрос к D1P, как к автору всего этого безобразия.

Это будет тем, чем вы это сделаете. Мне тоже ближе концепция учебника, но и готовые решения тоже приветствуются.

#45:  Author: Lev PostPosted: Thu Dec 03, 2009 17:39
    —
Имхо для начала вполне достаточно того, что есть в хелпе Тотала. К сожалению сайт автора реализации регулярных выражений использованных Гислером в Тотале линк на который есть в конце странички [s]умер[/s] у меня не открывается, но чего-то можно раскопать через web.archive.org - тут можно почитать чуть более расширенную информация, причём именно по тому движку, что использует Тотал. А тем кто желает продвинуться, я посоветовал бы почитать - Дж. Фридл "Регулярные выражения". Ну и wiki с остальным интернетом в помощь.



Total Commander -> Общие вопросы


output generated using printer-friendly topic mod. All times are GMT + 4 Hours

Goto page Previous  1, 2, 3, 4, 5, 6, 7, 8, 9  Next  :| |:
Page 3 of 9

Powered by phpBB © 2001, 2005 phpBB Group