View previous topic :: View next topic |
Как часто вы пользуетесь регулярными выражениями (RegEx)? |
Раз в день |
|
33% |
[ 34 ] |
Раз в неделю |
|
18% |
[ 19 ] |
Раз в месяц |
|
27% |
[ 28 ] |
А что это такое? |
|
19% |
[ 20 ] |
|
Total Votes : 101 |
|
Author |
Message |
Maximus
Joined: 07 Apr 2005 Posts: 927 Location: Украина, Кировоградская обл., г. Знаменка
|
(Separately) Posted: Fri Apr 06, 2007 09:28 Post subject: |
|
|
Ник
Не уверен, но попробуй с такими:
і - B3
ї - BF
є - BA
Quote: | в чём разница с латинским "i" я не знаю, но она есть | Еще бы ее не было. Между латинским "c" и русским "с" разница же есть _________________ tcPhonebook|AppLoader|Українізація TC|Ultimate Calendar |
|
Back to top |
|
|
Alextp
Joined: 06 Feb 2005 Posts: 4957
|
(Separately) Posted: Fri Apr 06, 2007 11:33 Post subject: |
|
|
Ник
1. Попробовать варианты Maximus'а
2. Если не помогло: заархивировать файл WinRAR'ом, посмотреть дамп архива UV в hex режиме. _________________ UniViewer - CudaText - LogViewer
|
|
Back to top |
|
|
Maximus
Joined: 07 Apr 2005 Posts: 927 Location: Украина, Кировоградская обл., г. Знаменка
|
|
Back to top |
|
|
Alextp
Joined: 06 Feb 2005 Posts: 4957
|
|
Back to top |
|
|
Ник
Joined: 15 Dec 2004 Posts: 1256 Location: Москва
|
(Separately) Posted: Fri Apr 06, 2007 17:31 Post subject: |
|
|
Оказалось всё проще - имена файлов - это имена новостей, которые есть в теле файла, HEX-просмотр дал нужный результат.
Итак, I (укр) это B2, причём, если просто копи-паст - то она не заменяется на I (англ), если через HEX - то заменяется.
В то же время, i (укр) через копи-паст почему-то легко заменяется на i (англ).
Копи-паст ессно не напрямую из The Bat в ТК, а через понимающий Уникод текстовый редактор... _________________ Xubuntu |
|
Back to top |
|
|
Вахмурка
Joined: 27 Dec 2004 Posts: 2585 Location: Большая деревня Москва
|
(Separately) Posted: Tue Dec 01, 2009 23:11 Post subject: |
|
|
Продолжаю собственный проект по сбору различных примеров применения регулярных выражений. Возможно, когда-то кто-то их отсортирует, отредактирует и положит в тихое теплое место (типа ТСКВ)...
Есть файлы типа 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+
Заменить: <Пусто>
Подробности здесь. _________________ Сайт PowerPro+Total Commander
Скрипты PowerPro для Total Commander
* * *
«Не усматривайте злого умысла в том, что вполне объяснимо глупостью» (Р. Хэнлон) |
|
Back to top |
|
|
D1P
Joined: 20 Dec 2004 Posts: 2973 Location: Тбилиси
|
|
Back to top |
|
|
Вахмурка
Joined: 27 Dec 2004 Posts: 2585 Location: Большая деревня Москва
|
(Separately) Posted: Wed Dec 02, 2009 10:52 Post subject: |
|
|
Незнание предмета. Видишь, люди аж три варианта предложили, а я и одного осилить не смог. Хотя с более простыми задачами вроде справляюсь.
Следовательно, моя низкая компетентность не позволит оценить, насколько тот или иной пример сложен/важен/типичен, и т. д. Для такой работы нужен кто-то более подготовленный и подкованный. _________________ Сайт PowerPro+Total Commander
Скрипты PowerPro для Total Commander
* * *
«Не усматривайте злого умысла в том, что вполне объяснимо глупостью» (Р. Хэнлон) |
|
Back to top |
|
|
Lev
Joined: 02 Mar 2005 Posts: 392
|
(Separately) Posted: Wed Dec 02, 2009 16:55 Post subject: |
|
|
Для подкованного многие регекспы покажутся примитивными и он не станет их никуда включать. Тут как раз лучше начинающий-середнячок.
по регекспам
Они сработают на данных в примере файлах, но пользователь может обработать ими все файлы в директории в т.ч. не совсем соответствующие примерам, например без цифр в имени, с несколькими точками, с цифрами перемежающимися буквами. Как уже упоминалось в обсуждении пример от Rodny работает перед первой точкой в имени файла - удалит последовательность нецифр перед цифрами с последующей точкой. Имхо первое экранирование в регекспе излишне. Можно убрать первые скобки и менять на $1, результат действия не изменится. Для меня данный регексп не совсем корректен как пример для обучения.
Пример от Tol!k убъёт все нецифры в имени файла оставив от файлов без цифр в имени только расширения.
Пример Моторокер'а удалит первую примыкающую к началу файла нецифровую последовательность, так же убив имена файлов без цифр.
Ещё раз повторю, что для приведённых примеров имён регекспы сработают правильно, но стоило бы составить более безопасное регулярное выражение. |
|
Back to top |
|
|
Tol!k
Joined: 01 Apr 2008 Posts: 1727 Location: Арзамас
|
(Separately) Posted: Thu Dec 03, 2009 00:44 Post subject: |
|
|
Lev, всё раскритиковал, и ничего не предложил взамен :)
Вахмурка
Самый безопасный вариант, вроде бы, такой (получен из варианта Rodny, как из наиболее безопасного из предложеных)
Найти: ^(\D+)(\d+\..+)
Заменить: $2
=
Найти: ^\D+(\d+\..+)
Заменить: $1 |
|
Back to top |
|
|
Вахмурка
Joined: 27 Dec 2004 Posts: 2585 Location: Большая деревня Москва
|
(Separately) Posted: Thu Dec 03, 2009 12:10 Post subject: |
|
|
2Lev
Вот такого, как ты, я и имел в виду: ты не только можешь составить рег. выр-е, не только разобрать имеющееся, но и сделать выводы о его "безопасности", "универсальности" и т.д. Мне это пока недоступно (а учитывая то, как редко я ими пользуюсь, таковым и останется). Может, возьмешься? Если мой пример не покажется тебе примитивным, включи его. И вообще поиском по форуму можно много полезного найти. Причем если в интернете есть многое, посвященное рег. выр-ям как таковым, вообще, то здесь следует сосредоточиться на рег. выр-ях в именах файлов (пока бог с ним, с текстом). Постоянно мелькают примеры и вопросы: заменить латинское "с" на русское, " " на "_", и т.д. _________________ Сайт PowerPro+Total Commander
Скрипты PowerPro для Total Commander
* * *
«Не усматривайте злого умысла в том, что вполне объяснимо глупостью» (Р. Хэнлон) |
|
Back to top |
|
|
Rodny
Joined: 24 Jan 2007 Posts: 949 Location: Могилёв, Беларусь
|
(Separately) Posted: Thu Dec 03, 2009 15:28 Post subject: |
|
|
Не делайте из еды^Wрегэкспов культа
Универсальность и безопасность — это хорошо, вопросов нет. К этому надо стремиться.
Но чаще всего задачи имеют ряд дополнительных условий, исходя из которых уже и делается вывод о необходимости тех или иных мер.
Если задача разовая, на ограниченном наборе имён, то особого смысла её оптимизировать нету, имхо.
А если это пойдёт как образец для обучения, то тут уже другое отношение. |
|
Back to top |
|
|
Вахмурка
Joined: 27 Dec 2004 Posts: 2585 Location: Большая деревня Москва
|
(Separately) Posted: Thu Dec 03, 2009 15:55 Post subject: |
|
|
См. заголовок. "Knowledge Base - База знаний" - это что? Сборник готовых рецептов (читай - справочник), или учебник, дающий пищу для размышлений? По хорошему вопрос к D1P, как к автору всего этого безобразия. Мое мнение - на текущий момент скорее учебник, причем хорошо бы ей, базе, таковым и остаться. Следовательно, если Rodny или Lev на примере нескольких случаев изложат курс под рабочим названием "Регулярные выражения в ТС для продвинутых чайников", то "будет так хорошо-хорошо, ну прямо как при царе" ((С) старый анекдот). _________________ Сайт PowerPro+Total Commander
Скрипты PowerPro для Total Commander
* * *
«Не усматривайте злого умысла в том, что вполне объяснимо глупостью» (Р. Хэнлон) |
|
Back to top |
|
|
D1P
Joined: 20 Dec 2004 Posts: 2973 Location: Тбилиси
|
(Separately) Posted: Thu Dec 03, 2009 16:27 Post subject: |
|
|
Вахмурка wrote: | По хорошему вопрос к D1P, как к автору всего этого безобразия. |
Это будет тем, чем вы это сделаете. Мне тоже ближе концепция учебника, но и готовые решения тоже приветствуются. _________________ База знаний о Total Commander
Блог |
|
Back to top |
|
|
Lev
Joined: 02 Mar 2005 Posts: 392
|
(Separately) Posted: Thu Dec 03, 2009 17:39 Post subject: |
|
|
Имхо для начала вполне достаточно того, что есть в хелпе Тотала. К сожалению сайт автора реализации регулярных выражений использованных Гислером в Тотале линк на который есть в конце странички [s]умер[/s] у меня не открывается, но чего-то можно раскопать через web.archive.org - тут можно почитать чуть более расширенную информация, причём именно по тому движку, что использует Тотал. А тем кто желает продвинуться, я посоветовал бы почитать - Дж. Фридл "Регулярные выражения". Ну и wiki с остальным интернетом в помощь. |
|
Back to top |
|
|
|
|
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum
|
Powered by phpBB © 2001, 2005 phpBB Group
|