Библиографическое описание:

Алешкина О. В. Использование регулярных выражений для эффективной работы с текстом // Молодой ученый. — 2014. — №3. — С. 865-866.

В статье рассматриваются вопросы методики обучения регулярным выражениям в профильном обучении.

Ключевые слова:регулярные выражения, поиск, замена.

Актуальность темы исследования определяется тем, что многие задачи поиска и замены можно автоматизировать, создав регулярные выражения, которые состоят из текстовых литералов и подстановочных знаков.

Регулярные выражения придуманы не вчера и даже не позавчера. Это средство облегчения жизни, одинаково хорошо подходящее и программистам, и пользователям, придумано уже довольно-таки давно и с тех пор исправно трудится на нелёгкой компьютерной ниве. В общем-то, это довольно странно, но факт: львиная доля пользователей и даже некоторые разработчики не умеют пользоваться регулярными выражениями. Регулярные выражения — средство поиска по тексту на основе шаблонов. Шаблон описывает закономерность, которой должны подчиняться искомые последовательности символов в тексте.

Тем не менее, как и при поиске по маске в Windows, при работе с регулярными выражениями приходится иметь дело с двумя существенно различающимися по своей природе вещами — литералами и метасимволами. Литералы — это обычные символы, то есть те, которые при записи в строке регулярного выражения интерпретируются именно так, как они записаны — они не имеют никого «подвоха», не имеют никаких специальных значений в данном выражении. Метасимволы, соответственно, интерпретируются при поиске каким-то особым образом — как, например, "*" задаёт последовательность любого количества любых литералов.

Регулярные выражения— это мощнейший инструмент, хорошо известный программистам. Однако он может быть полезен не только программистам, но и всем людям, работающим с кодом или простым текстом [3, c.58].

Главной целью профильного обучения выступает обеспечение общедоступности для учащихся, получения полноценного образования в соответствии с их индивидуальными склонностями и потребностями, обеспечение профессиональной ориентации и самоопределения обучающихся, установление преемственности между общим и профессиональным образованием [1, c.6].

В курсе профильного обучения можно обучать старшеклассников работе с регулярными выражениями. Последние помогут работать со сложным текстом.

В 10 классе на тему 1. «Информация. Техника обработки текстовой информации» отводится от 6 до 15 часов. Среди которых есть темы уроков «Форматирование документа» и «Создание, редактирование и форматирование документов». Именно здесь можно добавить практические занятия по использованию регулярных выражений.

В программе курса «Информатика и ИКТ» (профильный уровень) для среднего (полного) общего образования (10–11 класс) авторского коллектива под руководством профессора Семакина И. Г. в разделе «Информационные технологии» присутствует тема «Технологии обработки текстов» на которую отводится 8 часов. В эту тему также будет целесообразно добавить практические и лабораторные работы по использованию регулярных выражений.

Также учить регулярным выражениям можно при изучении тем «Технология табличных вычислений»(10 класс-15 ч), «Основы сайтопостроения»(10 класс-11ч).

При изучении языка html можно выполнять поиск ссылок в HTML-странице с помощью регулярного выражения. Регулярные выражения (Regular Expressions) позволяют сопоставлять текст с указанным шаблоном, а также выполнять замену текста. Эти операции осуществляются с помощью универсальных символов, которые специальным образом интерпретируются.

Регулярные выражения используются в большом количестве языков программирования.

С помощью регулярных выражений решают следующие основные задачи:

-                    проверка на соответствие. Проверка вводимого текста на соответствие некоторому шаблону: проверка корректности электронной почты, номера телефона, адреса и т. д.

-                    поиск и анализ. Поиск в тексте фрагментов, соответствующих заданному шаблону с целью последующего статистического анализа: анализа количества и частоты вхождений, анализа окружения вхождения и т. п.

-                    поиск и замена. Поиск в тексте фрагментов, соответствующих заданному шаблону с целью последующей их замены на другие фрагменты. Как раз в этом аспекте сервисы поддержки регулярных выражений в различных языках программирования могут несколько отличаться друг от друга набором предоставляемых возможностей.

-                    синтаксический анализ выражений, соответствующих небольшим формальным грамматикам. Решение заключается в составлении регулярного выражения, описывающего грамматику исходного выражения. С его помощью сначала осуществляем проверку на соответствие составленному шаблону и затем разбиваем выражение на лексемы посредством описанных в регулярном выражении групп.

Регулярные выражения позволяют, тем не менее, производить довольно изощренный и практически полезный поиск. Приведем реальные примеры.

Пример 1. Нужно найти строки с неверным расположением знаков препинания (типа ««,). Начинающие авторы часто ошибаются в расстановке знаков препинания, отделяя его от слова пробелом. Запрос на поиск таков:

Л [,:;!?\.]/.

Ищется пробел «\ «и любой из знаков препинания в скобках [].

Спецсимвол «точка» изображается как «\».

Пример 2. Аналогичная ошибка — отсутствие пробела сразу после знака препинания: / [,:;!?\.]Г\].

Ищется один из знаков препинания в скобках [] и пробел «\».

Пример 3. Если текст написан на родном языке, символы латиницы могут попасть только случайно: [A-Za-z].

Рассмотрим некоторые вопросы методики для этой темы. Полезное упражнение для учащихся — самостоятельное формулирование поискового утверждения на родном языке и перевод его в регулярное выражение. Важна именно содержательная формулировка поискового запроса и перевод ее самим учеником: связывание конкретной формулировки запроса на родном языке и абстрактной в виде регулярного выражения.

Отметим, что обработка текста алгоритмами поиска и замены — отличная пропедевтика для алгоритмизации и программирования на классических языках, с ясными целями, высокой наглядностью процесса и результатов. Она вполне может идти до темы «Алгоритмизация». При составлении регулярных выражений обучаемый привыкает ценить точность записи: важна буквально каждая запятая, каждый символ. Эта привычка весьма пригодится при составлении и записи обычных алгоритмов. Фактически обучаемый участвует в цикле поиска и замены по всем строкам текста, который выполняется регулярным выражением.

Применение регулярных выражений раскрывает внутри-предметную связь «редактирование — алгоритмизация». Без этого такая связь могла быть реализована лишь при разработке учеником простого текстового редактора, что далеко не всем по силам. Простое задание на модификацию алгоритма — вывести номера строк с ошибками в расстановке запятых.

Новый смысл приобретает и полемический тезис А. П. Ершова: «программирование — вторая грамотность». Умение составлять и применять регулярные выражения — вполне посильное и нужное умение даже для будущего параметрического пользователя.

Наконец, владение языком регулярных выражений пригодится при обучении поиску информации в Интернет. Конечно, там ищутся не пробелы перед запятой, но стиль составления запросов и применения маски к строкам текста сохраняется.

Литература

1.                  Семакин И. Г., Мартынова И. Н. Личностные и метапредметные результаты обучения информатике на профильном уровне // Информатика и образование. 2012. № 2. — С.12.

2.                  Смит Билл. Методы и алгоритмы вычислений на строках (regexp) = Computing Patterns in Strings. — М.: «Вильямс», 2006. — 496 с.

3.                  Фридл Дж. Регулярные выражения. — СПб.: «Питер», 2001. — 352 с.

4.                  Ян Гойвертс, Стивен Левитан Регулярные выражения. Сборник рецептов. — СПб.: «Символ-Плюс», 2010. — 608 с.

Обсуждение

Социальные комментарии Cackle