Главная · Карта сайта · Поиск · Статьи · Компьютерные курсы · Обучающие программы · Открытые проекты · Веб-программирование · Создание интернет-сайта · Полезные ссылки · Глоссарий · Контакты · Декабрь 09 2016 20:16:32
Последнее опубликованное

Что такое Model-View-Controller
Pattern Model-View-Controller

Как создать свой веб-сайт
Как создать свой сайт в интернете

Разное
Статистика

Основы программирования. Регулярные выражения


Содержание курса

Не все ошибки так же легко исправить, как орфографические...

Шаг 7. Операции с текстом (Часть 2) - "уроки орфографии"
или первый опыт применения регулярных выражений.

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

Описание алгоритма

Для поиска ошибок будем использовать сервис обработки регулярных выражений. В приведенных на этом шаге примерах показано самое элементарное применение регулярных выражений, но, тем не менее, без них решать поставленную задачу несколько сложней. Алгоритм простой: определим процедуру Check(), осуществляющую поиск орфографических ошибок заданного типа и вызовем эту процедуру для введенного текста ровно столько раз, сколько типов ошибок мы будет искать. Результат работы процедуры Check() – вывод количества ошибок и список позиций, где она была допущена. Процедура Check() на вход принимает исходный текст, наименование или подпись ошибки, используемое только для отчета, и регулярное выражение для поиска заданной ошибки. Все регулярные выражения определяют критерий поиска без учета регистра символов.

Фрагмент кода

Программы небольшие, поэтому здесь приведен код целиком.

C#:
    static void Check(string _text, string _caption, string _error)
    {
        Regex _regex = new Regex(_error);
        MatchCollection _matches = _regex.Matches(_text);

        Console.WriteLine("Количество ошибок " + _caption + ": " + _matches.Count.ToString());

        foreach (Match _match in _matches)
            Console.WriteLine("Позиция: " + _match.Index.ToString());
    }

    public static void Main()
    {
        Console.WriteLine("Введите текст:");
        string _Text = Console.ReadLine();

        Check(_Text, "'ЖЫ'", "[жЖ][ыЫ]");
        Check(_Text, "'ШЫ'", "[шШ][ыЫ]");
        Check(_Text, "'ЧЯ'", "[чЧ][яЯ]");
        Check(_Text, "'ЩЯ'", "[щЩ][яЯ]");
        Check(_Text, "'ЧЮ'", "[чЧ][юЮ]");
        Check(_Text, "'ЩЮ'", "[щЩ][юЮ]");

        Console.WriteLine("Нажмите любую кнопку для выхода...");
        Console.ReadKey();
    }
VB.NET:
Shared Sub Check(ByVal _text As String, ByVal _caption As String, ByVal _error As String)
    Dim _regex As Regex = New Regex(_error)
    Dim _matches As MatchCollection = _regex.Matches(_text)

    Console.WriteLine("Количество ошибок " + _caption + ": " + _matches.Count.ToString())

    For Each _match As Match In _matches
        Console.WriteLine("Позиция: " + _match.Index.ToString())
    Next
End Sub

Public Shared Sub Main()
    Console.WriteLine("Введите текст:")
    Dim _Text As String = Console.ReadLine()

    Check(_Text, "'ЖЫ'", "[жЖ][ыЫ]")
    Check(_Text, "'ШЫ'", "[шШ][ыЫ]")
    Check(_Text, "'ЧЯ'", "[чЧ][яЯ]")
    Check(_Text, "'ЩЯ'", "[щЩ][яЯ]")
    Check(_Text, "'ЧЮ'", "[чЧ][юЮ]")
    Check(_Text, "'ЩЮ'", "[щЩ][юЮ]")

    Console.WriteLine("Нажмите любую кнопку для выхода...")
    Console.ReadKey()
End Sub

Полные версии алгоритмов

На языке C#.
На языке VB.NET.

Резюме

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

Далее: Работа с базой данных



Компьютерные курсы и курсы программирования
Основы программирования

Курс для начинающих программистов на C# и VB.NET.

SQL 25™

Построение SQL запросов и работа с базой данных.

C# Quick Guide™

Программирование на C#. Краткое руководство.

RegEx

Применение регулярных выражений.

Plug-in архитектура

Примеры программной Plug-in архитектуры.

XML и его расширения

Язык разметки XML и его расширения с примерами.

HTML и разметка гипертекста

Языки HTML, XHTML и CSS с примерами разметки.

Основы веб-дизайна

Основы веб-дизайна: решения типовых задач верстки.

Программирование на PHP

Руководство по программированию на PHP для начинающих.

Справочные материалы

Шаблоны проектирования
Каталог шаблонов проектирования программных компонентов.

Рефакторинг кода
Каталог приемов рефакторинга программного кода.

Гость
Имя

Пароль



Забыли пароль?
Запросите новый здесь
.
Coding Craft. Все права защищены © 2011. Проект Инициативного Народного Фронта Образования - ИНФО-проект.