Ответ: Поиск/замена по регулярным выражениям.
А разве это нужно _пользователям_? Давай несколько аргументов с реальными примерами.
http://regexpstudio.com/RU/TRegExpr/Help/regexp_syntax.html
Куча примеров.
Не менее красноречива справка для Total Commander 6.54:
Регулярные выражения
Регулярные выражения- очень мощный инструмент для поиска текстовых строк и проверки соответствия их шаблону. Они позволяют искать слова по сложным критериям. Регулярные выражения предназначены главным образом для профессионалов, однако могут быть полезны и при работе в офисе для поиска определённых документов (см. примеры ниже).
Total Commander поддерживает регулярные выражения в следующих функциях:
- Команды - Поиск файлов (в имени и содержимом файла).
- Во внутренней программе просмотра.
- В инструменте группового переименования.
- При выделении файлов по маске.
Регулярные выражения состоят из обычных символов и специальных символов, так называемых метасимволов. Следующие символы - это метасимволы или их начальные части:
. \ ( ) [ ] { } ^ $ + * ? (кроме того, только в определении множеств символов: - ).
Обычные символы
Любой обычный символ означает сам себя, то есть в искомой строке должен находиться в точности этот символ и ничто иное. То же самое относится к нескольким обычным символам, идущим подряд.
Пример:
тест находит строку "тест" в исследуемом тексте. Обратите внимание: "тест" при этом обнаруживается В ЛЮБОМ МЕСТЕ имени файла или текстовой строки.
Escape-последовательности
Escape-последовательность начинается с обратной косой черты \.
Варианты Escape-последовательностей:
\t Символ табуляции.
\xnn Символ с шестнадцатеричным ASCII-кодом nn. Пример: \x20 - символ пробела. Таблица символов Windows (если она установлена, её запускаемый файл - charmap.exe) показывает символьные коды большинства специальных символов. Вы можете использовать калькулятор Windows в инженерном режиме для преобразования десятичных значений в шестнадцатеричные.
\[ Левая квадратная скобка. Поскольку квадратные скобки - метасимволы, они должны быть записаны как \[ для поиска их в целевой строке.
\\ Найти обратную косую черту.
\. Найти точку (символ "." является метасимволом и служит для поиска произвольного символа, см. ниже).
Примеры:
В\x20начале находит 'В начале' (обратите внимание на пробел).
\tВначале находит 'Вначале' с предшествующей табуляцией.
Множества символов
Символы в квадратных скобках задают множества символов. Будет найден ровно один символ из перечисленных. Чёрточка позволяет определять группы, например, [a-z] - это все 26 малых латинских букв. При указании ^ в качестве первого символа множества идёт поиск всех символов, кроме перечисленных.
Если необходимо включить во множество саму чёрточку, поместите её в начало или конец списка или предварите символом обратной косой черты: '\-'. Если необходимо добавить во множество сам символ ']', поместите его в самое начало или, точно так же, поставьте перед ним обратную косую черту: '\]'.
Примеры:
[аеиоу] Находит ровно одну из перечисленных гласных.
[^аеиоу] Находит любой символ, кроме этих гласных.
M[ae][iy]er Находит фамилию "Meier" во всех возможных способах написания: Mayer, Meyer, Maier, Meier. Очень полезно, если вы не можете вспомнить точное написание имени.
Метасимволы
Вот список наиболее важных метасимволов:
^ Начало строки.
$ Конец строки.
. Любой символ.
\w Алфавитно-цифровой символ или знак подчёркивания '_'.
\W Дополнение к \w, т.е. любой символ, кроме алфавитно-цифровых и подчёркивания.
\d Цифра.
\D Дополнение к \d (не цифра).
\s Разделитель между словами (пробел, табуляция и пр.).
\S Дополнение к \s (любой символ, кроме разделителей).
\b Указывает границу слова.
\B Указывает, что данная позиция не является границей слова.
Метасимвол границы слова (\b) означает, что в том месте, где он находится, обязательно должно быть либо начало, либо конец слова. Метасимвол \B, напротив, означает, что в указанном месте границы слова быть не должно.
Пример:
Выражение abc\b найдёт подстроку 'abc' в строке 'xabc def' и не найдёт ничего в строке 'xabcdef'. Выражение abc\B, наоборот, ничего не найдёт в 'xabc def' и обнаружит подстроку 'abc' в строке 'xabcdef'.
Итераторы
Итераторы (метасимволы повторов) используются для повторения символа или выражения, находящегося слева от итератора.
* Ноль или более вхождений, то же что и {0,}.
? Ноль или одно вхождение, то же что и {0,1}.
+ Одно вхождение или более, то же что и {1,}.
{n} Ровно n вхождений.
{n,} Не менее n вхождений
{n,m} Не менее n и не более m вхождений.
Все эти операторы "жадные". Это означает, что они захватывают максимально возможное число символов. Размещение вопросительного знака ? после оператора делает его "не жадным", то есть захватывающим символы не более необходимого минимума.
Пример: 'b+', как и 'b*', применённые ко входной строке 'abbbbc' найдут 'bbbb', в то время как 'b+?' найдёт только 'b', а 'b*?' - вообще пустую строку; 'b{2,3}' найдёт 'bbb', в то время как 'b{2,3}?' найдёт 'bb'.
Если фигурные скобки встречаются в "неправильном" месте, где они не могут быть восприняты как итератор, то они воспринимаются как обычные символы.
Варианты
Варианты (альтернативы) помещаются в круглые скобки и разделяются вертикальной чертой.
В качестве первого варианта воспринимается всё от предыдущего метасимвола "(" или "[" или от начала выражения до первого метасимвола "|", в качестве последнего - всё от последней вертикальной черты "|" до конца выражения или до ближайшего метасимвола ")".
Варианты пробуются, начиная с первого. Попытки завершаются, как только удастся подобрать такой вариант, при котором совпадёт вся последующая часть выражения. Это означает, что варианты не обязательно обеспечат "жадное" поведение.
Пример: по вариантам (Иоанн|Иаков|Пётр) обнаруживается одно из имён: Иоанн, Иаков или Пётр.
Следует знать, что метасимвол "|" воспринимается как обычный символ внутри множеств символов. Например, [бак|бок|бук] означает ровно то же самое что и [баоук|].
Подвыражения для поиска+замены
Текстовые фрагменты в круглых скобках считаются подвыражениями. Подвыражения нумеруются слева направо, в порядке появления открывающих скобок.
Пример:
Чтобы поменять местами заголовок и пояснение в имени mp3-файла, когда они разделены чёрточкой (Заголовок - Пояснение.mp3), можно поступить следующим образом:
Найти: (.*) - (.*)\.mp3
Заменить на: $2 - $1.mp3
Здесь $1 означает текст в первых скобках, а $2 - текст во вторых скобках.
Обратные ссылки
\n Указывает на повторное вхождение подвыражения номер n. Здесь n - число от 1 до 9.
Примеры:
(.)\1+ Находит, например, 'aaaa' и 'cc'.
(.+)\1+ Находит, например, 'abab' (где в первый раз 'ab' находится посредством .+ и во второй - посредством \1+ ) и '123123'.
Модификаторы
Модификаторы используются для изменения поведения регулярных выражений.
(?i) Отключает проверку верхнего/нижнего регистра. В Total Commander это значение включено по умолчанию для имён файлов.
(?-i) Включает проверку регистра.
(?g) Переключение на "жадный" режим (активно по умолчанию).
(?-g) Выключение "жадного" режима, после чего "+" будет означать то же, что и "+?".