Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 5.00/5: Рейтинг темы: голосов - 5, средняя оценка - 5.00
28 / 29 / 3
Регистрация: 26.07.2010
Сообщений: 297
1

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

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

Здравствуйте, помогите пожалуйста составить регулярное выражение для поиска фамилии и инициалов, например: Иванов И. И. Всё, что я смог сделать, так это вот это:
Код
"[a-zA-Z. ]"
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
27.04.2013, 20:48
Ответы с готовыми решениями:

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

Составить регулярное выражение для строкового образца
Добрый день. Только начал осваивать регулярные выражение и не могу разобраться. Есть такие строки:...

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

Не могу составить регулярное выражение. Не понимаю синтаксис
Есть у меня строка "C:\Users\My\example.txt" Как должно выглядеть регулярное выражение на с++,...

4
Почетный модератор
Эксперт HTML/CSSЭксперт PHP
16817 / 6695 / 880
Регистрация: 12.06.2012
Сообщений: 19,968
27.04.2013, 21:50 2
Код
[-a-zA-Zа-яА-ЯёЁҐЁЄЇіґёєї]+\s[a-zA-Zа-яА-ЯёЁҐЁЄЇіґёєї]+?\.[a-zA-Zа-яА-ЯёЁҐЁЄЇіґёєї]+?\.

Не по теме:

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

1
28 / 29 / 3
Регистрация: 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. Не подскажете, в чем проблема?
0
Почетный модератор
Эксперт HTML/CSSЭксперт PHP
16817 / 6695 / 880
Регистрация: 12.06.2012
Сообщений: 19,968
27.04.2013, 23:01 4

Не по теме:

http://www.cplusplus.com/refer... gex_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]\.)");
1
28 / 29 / 3
Регистрация: 26.07.2010
Сообщений: 297
27.04.2013, 23:22  [ТС] 5
KOPOJI, заработало, спасибо
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
27.04.2013, 23:22

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

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

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

Регулярное выражение
Здравствуйте. Кто знает, возмжно ли в регулярное выражение передать символ char, а не строку...

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


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

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