Регулярные выражения для повышения производительности задач
Содержание
Если вы уже знакомы с основными возможностями регулярных выражений, вам может быть интересно узнать, как их можно использовать. Если вы хотите освежить в общих чертах, ознакомьтесь с нашей таблицей регулярных выражений и Руководством для начинающих по регулярным выражениям.
Вот некоторые ежедневные задачи, в которых регулярные выражения могут повысить вашу производительность.
Переименование файлов со сложными правилами
Любой опытный пользователь компьютера может справиться с переименованием стопки файлов с помощью простой текстовой строки и счетчика с приращением. Однако сложнее переименовать файлы, следуя определенному протоколу. Допустим, вы хотите переименовать файлы, основываясь на их текущих именах файлов, текущих каталогах, модифицированных датах или некоторых других атрибутах.
Регулярные выражения могут помочь тщательно указать, какие файлы переименовать, а затем переименовать их со сложными правилами. Если у вас есть тысячи файлов для переименования, следуя некоторому набору рекомендаций, это неоценимо.
Вы можете свернуть свой собственный скрипт для этой функции, используя любой из языков, поддерживающих регулярные выражения, например Python или Perl, но есть варианты программного обеспечения также доступны. Проверьте Лучшее Finder Rename в macOS, ReNamer в Windows или Métamorphose в Linux.
Поиск в электронных таблицах для отформатированных данных
Если вы когда-либо просматривали электронную таблицу и искали все данные, отформатированные в виде почтового индекса, регулярные выражения будут хорошим другом.
Регулярные выражения существуют для решения именно такой проблемы, возвращая данные, отформатированные определенным образом. Например, если вы хотите найти действительные почтовые индексы США во всех трех популярных форматах, вы можете использовать регулярное выражение, подобное следующему:
^ d5?: [- s] d4? $
Позволяет разбить его на little:
- ^ обозначает начало строки
- d {5} соответствует пяти цифрам
- (?: начинает группу
- [- s] соответствует пробелу или тире
- d {4} соответствует последним четырем цифрам
- )? указывает, что предыдущая группа является необязательной
- $ заканчивает строку
Это выражение будет соответствовать пятизначным почтовым индексам, а также почтовым индексам с необязательным четырехзначным квалификатором, с черточкой и без нее.
Популярные программы для работы с электронными таблицами, такие как Excel, не поддерживают регулярные выражения. Вам нужно будет либо использовать небольшой VBScript, либо написать простую программу на Python для сканирования ваших данных. Если вы уже разбираетесь в коде, вам не следует выполнять эту задачу слишком сложным.
Расширенный поиск и замена
Некоторые удивительные приложения предлагают поддержку для поиска и замены текста регулярными выражениями. Adobes InDesign предлагает поддержку регулярных выражений, как и Word. У каждого движка есть свои особенности реализации, и ни один из них нельзя назвать завершенным, но они выполнят свою работу.
В Word вы можете использовать это, чтобы изменить форматирование для написанных дат или добавить точки к аббревиатурам. Если вам нужно больше энергии, вы можете использовать сторонний инструмент, такой как PowerGREP, для поиска различных текстовых документов с полнофункциональным механизмом RegEx на основе Perl.
Поиск файлов по содержимому
grep может быть одним из самых мощных и недостаточно используемых инструментов, доступных на платформах под управлением UNIX. Эта утилита командной строки поддерживает регулярные выражения по умолчанию, позволяя вам искать содержимое файлов с шаблоном регулярного выражения. Он не всегда надежно работает с форматированными текстовыми файлами, но для обычного текста, данных и электронных таблиц он бесценен.
В macOS или Linux у вас есть встроенный доступ к grep через командную строку. Если вы работаете в Windows, вы можете использовать вышеупомянутый PowerGREP для поиска файлов по содержимому без замены чего-либо.
Заключение
Когда вы привыкли использовать регулярные выражения, у вас есть доступ к чрезвычайно мощному инструмент. Каждый раз, когда вы ищете что-то визуальное, остановитесь на мгновение и подумайте, можете ли вы написать быстрый RegEx, чтобы сделать то же самое для вас. Даже если вы не программист, вы можете получить много пользы от регулярных выражений.