Регулярные выражения нужны не только всем без исключения разработчикам, но и вообще всем, кто сталкивается с компьютером. С их помощью можно выполнять поиск и замену в продвинутых текстовых редакторах типа Notepad++ и всяких Excel. Итак, материалы по теме:
1) Фридл Дж. Регулярные выражения, 3 е издание. – Пер. с англ. – СПб.: Символ Плюс, 2008. – 608 с., ил. (можно найти в интернете). Хорошо описаны основы, кроме того рассмотрен ряд диалектов (регулярные выражения в различных языках незначительно различаются, в Perl — больше отличий). Описана работа в языках PHP, Java, Python, Ruby, MySQL, VB.NET и C#. Книга хорошая, но у меня после ее чтения все спуталось, я пытался писать очень сложные выражения, в том числе рекурсивные (но оказалось что поддерживаются они далеко не везде...). Читать книгу целиком не рекомендую;
2) Гойвертс Я., Левитан С. Регулярные выражения. Сборник рецептов. – Пер. с англ. – СПб.: Символ–Плюс, 2010. – 608 с., ил. (можно найти в интернете). В книге разобраны сотни примеров регулярных выражений, при этом для каждой задачи приведено несколько реализаций (для различных диалектов) и описаны особенности. В качестве диалектов используются C#, Java, JavaScript, Perl, PHP, Python, Ruby и VB.NET. Это не учебник. Я рекомендую сначала прочитать книгу Фридла (1 и 3 главы) или (лучше) Фицджеральда, а затем посмотреть книгу Гойвертса, т.к. примеры тут рассмотрены реально хорошо.
3) Фицджеральд, Майкл. Регулярные выражения: основы.: Пер. с англ. — М.: ООО "И.Д. Вильямс': 2015. — 144 с. : ил.. (в интернете оказалось найти сложнее всего, но оно того стоит). Книга в 4 раза тоньше чем две предыдущих, но материал не хуже. Из достоинств — автор предлагает тестировать примеры в онлайн сервисе, Notepad++ и еще целом ряде приложений, включая Google Chrome. Несмотря на то, что книга и так тонкая, половину ее объема составляют скриншоты (которые помогут вам начать нормально работать). Это лучшая книга для новичков.
4) видео М. Ширшина "Регулярные выражения". Если вдруг вам лень читать и вы решили посмотреть видео, будьте осторожны, в нем только самые основы), размазано это на час (хотя, читая книгу, скорее всего потратите больше). Рассматривается только JavaScript. Видео вообще с уклоном на фронтенд (в официальной аннотации написано "для разработчика интерфейсов"). https://www.youtube.com/watch?v=jogqqw8vW4o.
5) Неплохой сборник задач по регулярным выражениям: https://regexone.com/. Позиционируется как "интерактивный учебник" видимо потому, что задачи снабжены пояснениями на английском языке, что тоже полезно. Всего таких "уроков" 15, затем предлагается 9 практических заданий. Есть справочный материал по использованию регулярных выражений на С#, PHP и Python.
6) Примеры использования регулярных выражений на С++, Qt. Ни в одном из учебников, приведенных выше не рассматривался язык С++, но в нем вы тоже можете использовать регулярные выражения. Есть множество библиотек, например Boost.Regex, libpcre (Perl Compatible Regular Expressions), а с С++11 регулярные выражения включены в стандартную библиотеку. Но ниже все примеры с использованием библиотеки Qt:
6.1) заметка "QValidator примеры использования": https://pro-prof.com/forums/topic/qvalidator-qt_cplusplus. QValidator позволяет проверять корректность данных вводимых в поля формы, при этом есть QRegExpValidator, который умеет выполнять такую проверку на основе регулярного выражения. В статье рассматривается простой пример использования для проверки корректности номера телефона и банковской карты;
6.2) заметка "Парсер сайта на Qt, использование QRegExp": https://pro–prof.com/forums/topic/site-parser-with-qregexp. Показано как с помощью C++ и Qt можно получить с фото–сайта интересующие нас данные. Используется класс QRegExp.
7) статья "Поиск с помощью регулярных выражений может быть простым и быстрым": http://habrahabr.ru/company/mailru/blog/270507/. Статья очень хорошая и полезная, но интересна будет не всем, т.к. много "матана". Рассказывается о том, как регулярные выражения устроены внутри (реализованы), при этом показаны различные варианты реализации.
Это интересно
0
|
|||
Последние откомментированные темы: