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

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

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

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

Регулярные выражения. Примеры операций замены


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

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

Итак, строка, на которую вы предлагаете программе заменять фрагменты, удовлетворяющие исходному регулярному выражению, может, помимо целевого значения, содержать ссылки на группы, из которых найденный фрагмент состоит. Как было сказано ранее, для выделения групп в регулярных выражениях используются круглые скобки. Вот пример, как с использованием операции замены в исходном тексте можно менять слова местами. Ищем все словосочетания “школа программирования” и меняем местами слова школа и программирование. Для этого части исходного шаблона, соответствующие этим словам, заключаем в круглые скобки:(?i)(школ\w)\s+(программирования). Приведенное регулярное выражение означает, что вначале идет часть слова "школ", потом любое его окончание (\w), потом один или несколько пробелов (\s+) и в конце слово "программирования".

Для ссылки на группы в строке замены используем специальный символ $ и номер группы в круглых скобках:[${2} ${1}]. Группы нумеруются с единицы. Квадратные скобки в строке замены не несут никакой служебной нагрузки, а используются только с целью выделить отредактированный фрагмент в полученном после замены тексте.

Регулярные выражения. Перестановка слов с использованием операции замены. Ссылка на группы по номеру
Перестановка слов с использованием регулярных выражений. Ссылки на группы по номерам.

Помимо ссылки на группы по их индексу, регулярные выражения также поддерживают ссылки на группы по именам. Естественно, что для этого необходимо группам эти имена дать. Делается это с использованием специального синтаксиса ?<наименование группы>, как показано в следующем примере.

Регулярные выражения. Перестановка слов с использованием операции замены. Ссылка на группы по имени
Перестановка слов с использованием регулярных выражений. Ссылки на группы по именам.

Регулярное выражение:
(?i)(?<school>школ\w)\s+(?<coding>программирования)

Строка для перестановки слов:
[${coding} ${school}]

Читать дальше...

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

Курс для начинающих программистов на 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. Проект Инициативного Народного Фронта Образования - ИНФО-проект.