Форум программистов, компьютерный форум, киберфорум
Boost C++
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.75/12: Рейтинг темы: голосов - 12, средняя оценка - 4.75
150 / 64 / 8
Регистрация: 14.12.2010
Сообщений: 347
Записей в блоге: 1
1

Регулярные выражения Boost::regex

26.07.2012, 14:30. Показов 2462. Ответов 2
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Всем привет, разбирал пример с учебника (регулярные выражения) и столкнулся не понятным явлением.
Задание:
Выбрать номера только такого типа : (123)456-7890 и 123-456-7890.
Вот регулярное выражение с учебника для решения этой задачи: (\()?\d{3}(?(1)\)|-)\d{3}-\d{4}
Вот БД из которой выбираем:
№1 123-456-7890
№2 (123)456-7890
№3 (123)-456-7890
№4 (123-456-7890
№5 1234567890
№6 123 456 7890
№7 _123_123-1234
Выражение вроде бы правильное но результаты вот такие:№1,№2, и №4! Почему не срабатывает регулярное выражение? я проверял это на "Тестере регулярных выражений" и с помощью boost::regex
Результат одинаковый не работает правильно и все.
Вот релиз на С++ сильно не пинать..
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
........
 
file.open("f.txt");
t_String str;
 
t_RegExp regex8("(\\()?\\d{3}(?(1)\\)|-)\\d{3}-\\d{4}");
    
    while(getline(file,str))
    {
        if(t_Boost::regex_search(str,regex8))
        {
            std::cout << "#" << line+1 << "\t" << str << std::endl;
        }
        else
        {
            std::cout << "#" << line+1 << "\t" << "FAIL" << std::endl; 
        }
        line++;
    }
..........
Подскажите в чём причина?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
26.07.2012, 14:30
Ответы с готовыми решениями:

Регулярные выражения Boost::regex
Всем привет! Юзаю библиотеку boost. В частности boost::regex. Столкнулся с такой проблемой. Как...

Boost и регулярные выражения
Добр день. У меня возникла проблема с регулярными выражениями на C++, среда RAD 2010, C++...

Регулярные выражения.Boost.
Суть вопроса такова.Я установил boost, убил на это 3 часа,но все же установил :) Так вот,все...

Регулярные выражения в boost - что-то не разберусь
Привет! Глянул примеры использования boost по части регулярных выражений. Написал следующий код:...

2
150 / 64 / 8
Регистрация: 14.12.2010
Сообщений: 347
Записей в блоге: 1
26.07.2012, 14:41  [ТС] 2
Вот скрин
Миниатюры
Регулярные выражения Boost::regex  
0
2554 / 1319 / 178
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
26.07.2012, 21:00 3
Цитата Сообщение от stawerfar Посмотреть сообщение
Подскажите в чём причина?
Убери у этой строки первый символ и посмтри, что получится.
1
26.07.2012, 21:00
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
26.07.2012, 21:00
Помогаю со студенческими работами здесь

RegEx Boost
Доброго времени суток. Ребята у меня во время выполнения программы, сама программа ругается на...

Проблема с boost-regex
Код программы: #include &lt;iostream&gt; #include &lt;boost/regex.hpp&gt; using namespace std; int...

Необработанное исключение Boost::Regex
Только начал изучение буста - решил начать с регулярных выражений, т.к. они в данный момент...

Не собирается проект с boost::regex
Установил boost, подключил все к Dev-C++(в параметрах компилятора в библиотеки добавил...

Linking Error boost regex
Всем привет. Скачал boost_1_69_0. Скомпилил bjam cmd d:\boost\boost_1_69_0\bootstrap.bat gcc ...

boost::regex определить регулярное выражение
Есть такие строки: (1) title=\&quot;Динамика курса USD грн.\&quot;&gt;USD...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru