Читаем Язык программирования C++. Пятое издание полностью

Функции regex_match() и regex_search() определяют, соответствует ли заданная последовательность символов предоставленному объекту класса regex. Функция regex_match() возвращает значение true, если вся исходная последовательность соответствует выражению; функция regex_search() возвращает значение true, если в исходной последовательности выражению соответствует подстрока. Есть также функция regex_replace(), описываемая в разделе 17.3.4.

Аргументы функции regex описаны в табл. 17.5. Эти функции возвращают логическое значение и допускают перегрузку: одна версия получает дополнительный аргумент типа smatch. Если он есть, эти функции сохраняют дополнительную информацию об успехе обнаружения соответствия в предоставленном объекте класса smatch.

<p>17.3.1. Использование библиотеки регулярных выражений</p>

В качестве довольно простого примера рассмотрим поиск слов, нарушающих известное правило правописания "i перед е, кроме как после с":

// найти символы ei, следующие за любым символом, кроме с

string pattern("[^с]ei");

// искомая схема должна присутствовать в целом слове

pattern = "[[:alpha:]]*" + pattern + "[[:alpha:]]*";

regex r(pattern); // создать regex для поиска схемы

smatch results; // определить объект для содержания результатов поиска

// определить строку, содержащую текст, соответствующий и не

// соответствующий схеме

string test_str = "receipt freind theif receive";

// использовать r для поиска соответствия в test_str

if (regex_search(test_str, results, r)) // если соответствие есть

 cout << results.str() << endl; // вывести соответствующее слово

Таблица 17.5. Аргументы функций regex_search() и regex_match()

Обратите внимание: функции возвращают логическое значение, означающее, было ли найдено соответствие.
(seq, m, r, mft) (seq, r, mft)Поиск регулярного выражения объекта r класса regex в символьной последовательности seq. Последовательность seq может быть строкой, парой итераторов, обозначающих диапазон, или указателем на символьный массив с нулевым символом в конце, m — это объект соответствия, используемый для хранения подробностей о соответствии. Типы объекта m и последовательности seq должны быть совместимы (см. раздел 17.3.1). mft — это необязательное значение regex_constants::match_flag_type. Это значение, описанное в табл. 17.13, влияет на процесс поиска соответствия

Таблица 17.6. Операции с классом regexwregex)

Перейти на страницу:

Похожие книги

Adobe Flash. Создание аркад, головоломок и других игр с помощью ActionScript
Adobe Flash. Создание аркад, головоломок и других игр с помощью ActionScript

Данная книга посвящена программированию игр с помощью ActionScript. Здесь вы найдете подробные указания, необходимые для создания самых разных игр – аркад, головоломок, загадок и даже игровых автоматов. В тексте приведены исходные коды программ и детальные, доступно изложенные инструкции. Базовые принципы программирования ActionScript рассматриваются на примере игр, однако вы без труда сможете применить полученные знания и для разработки неигровых проектов, таких как Web-дизайн и реклама. Рекомендации Гэри Розенцвейга помогут вам не только придумывать занимательные игры и размещать их на Web-сайте, но и оптимизировать скорость их работы, а также защищать свои творения от несанкционированного копирования. Представленный в книге код несложно изменить для использования в других программах.Книга предназначена для широкого круга читателей – создателей анимационных роликов, художников-оформителей, программистов и разработчиков Web-сайтов. Издание может также выступать в качестве практического пособия по изучению ActionScript.

Гэри Розенцвейг

Программирование, программы, базы данных / Программирование / Книги по IT
Секреты приложений Google
Секреты приложений Google

Даже продвинутые пользователи Интернета не подозревают о тех огромных возможностях, которые предоставляют сервисы Google. Автор рассказывает о таких «секретах» сервисов, которые просто немедленно хочется использовать! Создавать сайты и презентации, бродить по улочкам Парижа, изучать звездное небо – все это доступно каждому, кто сидит у экрана монитора и имеет доступ в Интернет. Книга научит вас работать с веб-приложениями и тысячекратно увеличить свои возможности с помощью новейших технологий. Она написана легким, доступным языком и не требует от читателя наличия каких-либо специальных знаний. Книга содержит множество примеров, иллюстраций и будет полезна всем, кто не стоит на месте и стремится сделать свою жизнь более насыщенной и интересной.

Денис Балуев , Денис Игоревич Балуев

Программирование, программы, базы данных / Интернет / Программное обеспечение / Книги по IT