К ТСКВ: примеры регулярных выражений
Модераторы: Avada, CaptainFlint, Nik, d-view, Моторокер
Регулярное выражение для имени файла
Нужно составить регулярное выражение для переименования файлов и папок следующего вида:
1. Папка
АБВГ.123456.789 Кабель питания
АБВГ.123456.789-01 Кабель питания
АБВГ.123456.789-001 Кабель питания
2. Файлы
АБВГ.123456.789_СБ Кабель питания.pdf
АБВГ.123456.789_СП Кабель питания.pdf
АБВГ.123456.789_ВП Кабель питания.pdf
АБВГ.123456.789-01_СБ Кабель питания.pdf
АБВГ.123456.789-01_СП Кабель питания.pdf
АБВГ.123456.789-01_ВП Кабель питания.pdf
АБВГ.123456.789-001_СБ Кабель питания.pdf
АБВГ.123456.789-001_СП Кабель питания.pdf
АБВГ.123456.789-001_ВП Кабель питания.pdf
Цель регулярного выражения - использование при групповом переименовании файлов для смены децимального номера, т.е. АБВГ.123456.789 --> ДЕЖЗ.234567.890.
Составил выражениено оно работает только для файлов, а при попытке использовать его для папки не находит совпадений.
Если из выражения вырезать \.\d{3} , то совпадения находятся, но в имени папки остаётся .789.
Помогите составить универсальное регулярное выражение.
1. Папка
АБВГ.123456.789 Кабель питания
АБВГ.123456.789-01 Кабель питания
АБВГ.123456.789-001 Кабель питания
2. Файлы
АБВГ.123456.789_СБ Кабель питания.pdf
АБВГ.123456.789_СП Кабель питания.pdf
АБВГ.123456.789_ВП Кабель питания.pdf
АБВГ.123456.789-01_СБ Кабель питания.pdf
АБВГ.123456.789-01_СП Кабель питания.pdf
АБВГ.123456.789-01_ВП Кабель питания.pdf
АБВГ.123456.789-001_СБ Кабель питания.pdf
АБВГ.123456.789-001_СП Кабель питания.pdf
АБВГ.123456.789-001_ВП Кабель питания.pdf
Цель регулярного выражения - использование при групповом переименовании файлов для смены децимального номера, т.е. АБВГ.123456.789 --> ДЕЖЗ.234567.890.
Составил выражение
Код: Выделить всё
\W{4}\.\d{6}\.\d{3}Если из выражения вырезать \.\d{3} , то совпадения находятся, но в имени папки остаётся .789.
Помогите составить универсальное регулярное выражение.
N1Tron1X
Создавать для каждого запроса по регулярным выражениям отдельную тему — слишком большая роскошь. Пока что перенесено по принадлежности в общую тему по регуляркам. И не уверен, что папки/файлы тут единственнная проблема. Составленное вами выражение — это просто произвольный набор символов в общем виде, разбитых на группы точками. Удалить их, предположим, легко. Но менять их вы их с наращиванием букв и цифр на что-то другое как собираетесь?
Создавать для каждого запроса по регулярным выражениям отдельную тему — слишком большая роскошь. Пока что перенесено по принадлежности в общую тему по регуляркам. И не уверен, что папки/файлы тут единственнная проблема. Составленное вами выражение — это просто произвольный набор символов в общем виде, разбитых на группы точками. Удалить их, предположим, легко. Но менять их вы их с наращиванием букв и цифр на что-то другое как собираетесь?
Даже самая богатая фантазия
Не представит себе наши безобразия.
Не представит себе наши безобразия.
sa
Да, Вы правы! Не думал, что эта галка может сыграть роль при переименовании папок, которые не имеют расширения.
Рабочая регулярка, если кому понадобится
*в имени файлов/папок не должно быть цифр после децимального номера
Спасибо!
Да, Вы правы! Не думал, что эта галка может сыграть роль при переименовании папок, которые не имеют расширения.
Рабочая регулярка, если кому понадобится
Код: Выделить всё
^\W{4}(.*)\dСпасибо!
N1Tron1X
Во-первых, рабочая регулярка — для чего? При нормальном использовании в ИГП регулярные выражения позволяют вот именно что выполнять переименование от и до, ваши (что то, что другое) этого не делают. Кому и для чего она может понадобиться, не подскажете? Выше уже задавался вопрос, который вы успешно проигнорировали.
Во-вторых, извольте нормально оформлять цитаты: кнопкой "цитата" надо уметь пользоваться. Излишества убраны (в данном случае цитата вообще не нужна).
Что касается самого вопроса, то менять умолчальное состояние опций, не разобравшись как следует в их смысле, никогда не следует, а к расширению в папках приравнивается то, что идёт после последней точки.
Во-первых, рабочая регулярка — для чего? При нормальном использовании в ИГП регулярные выражения позволяют вот именно что выполнять переименование от и до, ваши (что то, что другое) этого не делают. Кому и для чего она может понадобиться, не подскажете? Выше уже задавался вопрос, который вы успешно проигнорировали.
Во-вторых, извольте нормально оформлять цитаты: кнопкой "цитата" надо уметь пользоваться. Излишества убраны (в данном случае цитата вообще не нужна).
Что касается самого вопроса, то менять умолчальное состояние опций, не разобравшись как следует в их смысле, никогда не следует, а к расширению в папках приравнивается то, что идёт после последней точки.
Даже самая богатая фантазия
Не представит себе наши безобразия.
Не представит себе наши безобразия.
sa
Возможно, но если, согласно примеру, точный исходный децимальный номер меняется на точный другой номер, то так ли здесь необходимы регулярные выражения? Во всяком случае, из сообщённых условий другой трактовки ситуации не видно. И есть предложение дальше за автора запроса то, что ему надо, не придумывать. Захочет отвечать — сам ответит. Не захочет — его дело, тем более что исходная проблема с выключенной опцией исчерпана.
Возможно, но если, согласно примеру, точный исходный децимальный номер меняется на точный другой номер, то так ли здесь необходимы регулярные выражения? Во всяком случае, из сообщённых условий другой трактовки ситуации не видно. И есть предложение дальше за автора запроса то, что ему надо, не придумывать. Захочет отвечать — сам ответит. Не захочет — его дело, тем более что исходная проблема с выключенной опцией исчерпана.
Даже самая богатая фантазия
Не представит себе наши безобразия.
Не представит себе наши безобразия.
Требуется РВ для группового переименования каталогов
Условия:
Есть набор каталогов, созданных по одинаковому принципу: - Составление нескольких слов вместе, в слитное написание. Причем каждое слово начинается со Строчной буквы. Буквы могут применяться смешанные - как латиница, так и кириллица. Т.е название каталога может иметь (обобщенно!) следующий вид:
ProjectTypeАвторNoName. При этом длина названия (общее кол-во символов в названии) не регламентированно. Т.е условно может быть любым.
Задача - написать РВ, позволяющее переименовывать эти названия в следующий вид:
Project_Type_Автор_No_Name
Т.е - перед каждой Строчной буквой, должно появиться подчеркивание, НО - его не должно быть в конце названия и в начале, соответственно
Есть набор каталогов, созданных по одинаковому принципу: - Составление нескольких слов вместе, в слитное написание. Причем каждое слово начинается со Строчной буквы. Буквы могут применяться смешанные - как латиница, так и кириллица. Т.е название каталога может иметь (обобщенно!) следующий вид:
ProjectTypeАвторNoName. При этом длина названия (общее кол-во символов в названии) не регламентированно. Т.е условно может быть любым.
Задача - написать РВ, позволяющее переименовывать эти названия в следующий вид:
Project_Type_Автор_No_Name
Т.е - перед каждой Строчной буквой, должно появиться подчеркивание, НО - его не должно быть в конце названия и в начале, соответственно
ToniZa -
- CaptainFlint
- Сообщения: 6239
- Зарегистрирован: Вт дек 14, 2004 22:34
- Контактная информация:
ToniZa
Регулярное выражение.
Найти: (?-i)\B[A-ZА-ЯЁ]
Заменить на: _$0
Побочный эффект: заменяться не будет не только в начале слова, а ещё и после пробела, но насколько я понял, в исходных именах пробелов всё равно нет.
Также непонятно, что имеется в виду под "в конце названия". Если подчёркивание добавляется лишь перед буквой, то оно в принципе не может оказаться в самом конце.
Регулярное выражение.
Найти: (?-i)\B[A-ZА-ЯЁ]
Заменить на: _$0
Побочный эффект: заменяться не будет не только в начале слова, а ещё и после пробела, но насколько я понял, в исходных именах пробелов всё равно нет.
Также непонятно, что имеется в виду под "в конце названия". Если подчёркивание добавляется лишь перед буквой, то оно в принципе не может оказаться в самом конце.
Почему же, ё-моё, ты нигде не пишешь "ё"?
Да, правильно - нет.CaptainFlint писал(а):ToniZa
...насколько я понял, в исходных именах пробелов всё равно нет.
Просто я пытался сам решить эту задачу и, судя по всему, заходил "не с той стороны". Вот и предупредил, "на всякий случай".Если подчёркивание добавляется лишь перед буквой, то оно в принципе не может оказаться в самом конце.
ToniZa -
Поиск-замена с регэксп.
Привет.
Пытаюсь повторить простое действие из хэлпа: замену типа "автор - год - альбом - трэк" на "год автор".
(.*) - (.*) - (.*) - (.*) --- $2 $1
В простейшем случае, когда формат постоянен - работает, но если присутствует разное число полей - то всё рушится. Как я понял, нумерация полей произврдится с последнего, а мне надо перетасовать первые.
Это решаемо или багофича регэкспов?
Тиа.
Пытаюсь повторить простое действие из хэлпа: замену типа "автор - год - альбом - трэк" на "год автор".
(.*) - (.*) - (.*) - (.*) --- $2 $1
В простейшем случае, когда формат постоянен - работает, но если присутствует разное число полей - то всё рушится. Как я понял, нумерация полей произврдится с последнего, а мне надо перетасовать первые.
Это решаемо или багофича регэкспов?
Тиа.