Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
dev.nikor
25 / 26 / 1
Регистрация: 26.07.2010
Сообщений: 297
#1

Составить регулярное выражение - C++

27.04.2013, 20:48. Просмотров 519. Ответов 4
Метки нет (Все метки)

Здравствуйте, помогите пожалуйста составить регулярное выражение для поиска фамилии и инициалов, например: Иванов И. И. Всё, что я смог сделать, так это вот это:
Код
"[a-zA-Z. ]"
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
27.04.2013, 20:48     Составить регулярное выражение
Посмотрите здесь:

Составить регулярное выражение - C++
Нужно составить регулярку: проверить является ли строка индентификатором в C++ длиной не более 33 символов. Считается что индентификатор...

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

Составить регулярное выражение, которое будет анализировать переменные - C++
Здравствуйте! Условие задачи: На вход программы подается текстовый файл (с именем INPUT.TXT), содержащий только описания...

Составить регулярное выражение, пропускающее строки, являющиеся целыми числами в заданном диапазоне - C++
Ребя помогите пожалуйста. Я ничего не понимаю из того что ниже написано, а лабораторную по теории автоматов сдать надо! Для каждого из...

Регулярное выражение - C++
Пишу под Qt и получил такую проблему. Почему данный код не выводит чего либо в консоль?: QString data("<div class=\"text\">xxx:<br>ну...

Регулярное выражение - C++
Дана последовательность (-1.2+3.0)+2-8/6. Надо разбить строку на символы и числа. Как нужно отредактировать этот шаблон, чтобы число с...

Регулярное выражение - C++
Добрый день! Помогите расшифровать регулярное выражение, что оно ищет. (;.*|.*|)+

Не работает регулярное выражение - C++
Здравствуйте, есть метод с регулярным выражением: bool Library::ValidGenreCode(std::string genreCode) { const std::string genreCodeExp...

Регулярное выражение boost::regex - C++
Здравствуйте форумчане. Не получается написать регулярное выражения для разбора такой строки: g=p1#s=p1,p2#t=p1 g, s, t - имена...

Вырезать символ из строки, регулярное выражение - C++
Подскажите пожалуйста как из строки std::string s = "string\.txt"; вырезать сиивол "\"

Написать регулярное выражение для поиска строки - C++
Доброго времени суток. Изучаю регулярные выражения. Столкнулся с проблемой. Как написать рег выр для поиска строки "port=1234" или " port...

Регулярное выражение для парсинга слов, заключенных в звездочки - C++
помогите составить регулярное. Необходимо, чтобы оно выдергивало из текста слова, расположенных между звездочек например: текст :...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
KOPOJI
Модератор
Эксперт HTML/CSSЭксперт PHP
16688 / 6614 / 431
Регистрация: 12.06.2012
Сообщений: 19,873
Завершенные тесты: 1
27.04.2013, 21:50     Составить регулярное выражение #2
Код
[-a-zA-Zа-яА-ЯёЁҐЁЄЇіґёєї]+\s[a-zA-Zа-яА-ЯёЁҐЁЄЇіґёєї]+?\.[a-zA-Zа-яА-ЯёЁҐЁЄЇіґёєї]+?\.

Не по теме:

преподу точно плохо станет

dev.nikor
25 / 26 / 1
Регистрация: 26.07.2010
Сообщений: 297
27.04.2013, 22:17  [ТС]     Составить регулярное выражение #3
KOPOJI, немножко изменил и написал вот так (что бы не было кириллицы):
C++
1
2
std::regex exp("[A-Z][a-z]{1,20}\s[A-Z]\.\s[A-Z]\.");
std::cout<<regex_match("Marty I. I.", exp);
Но почему-то выводит 0. Не подскажете, в чем проблема?
KOPOJI
Модератор
Эксперт HTML/CSSЭксперт PHP
16688 / 6614 / 431
Регистрация: 12.06.2012
Сообщений: 19,873
Завершенные тесты: 1
27.04.2013, 23:01     Составить регулярное выражение #4

Не по теме:

http://www.cplusplus.com/reference/regex/regex_match/

The entire target sequence must match the regular expression for this function to return true (i.e., without any additional characters before or after the match). For a function that returns true when the match is only part of the sequence, see regex_search.
Поэтому лучше использовать search, чем match, могут быть и пробелы после, к примеру..
P.S. я на плюсах не пишу, поэтому помочь не могу..



Добавлено через 11 минут
Единственное, что могу предположить - что необходимо "насильно" запоминать, но не знаю.. Попробуйте, а вдруг поможет)) (\s тоже убрал, может их нет..)
C++
1
std::regex exp("([A-Z][a-z]{1,20} [A-Z]\. [A-Z]\.)");
dev.nikor
25 / 26 / 1
Регистрация: 26.07.2010
Сообщений: 297
27.04.2013, 23:22  [ТС]     Составить регулярное выражение #5
KOPOJI, заработало, спасибо
Yandex
Объявления
27.04.2013, 23:22     Составить регулярное выражение
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru