Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/6: Рейтинг темы: голосов - 6, средняя оценка - 5.00
1 / 1 / 0
Регистрация: 19.12.2017
Сообщений: 147

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

18.03.2018, 10:33. Показов 1214. Ответов 3
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Создать регулярное выражение в котором будет кириллица латиница цифры пробел разделительные знаки при этом разделительные знаки не должны повторяться больше чем 1 раз и строка должна начинаться большой буквы
C++
1
2
3
4
5
6
7
8
9
10
string info="House..";
        cmatch result; 
        regex regular("(^[А - ЯA - Z][а - яёЁa - z _., -0 - 9] * )");
 
        if (regex_match(info.c_str(), result, regular))
            cout << "true" << endl;
            for (int i = 0; i < result.size(); i++) {
                cout << result[i] << endl;
            }
        }
Из всего перечисленного не получается только сделать так чтобы разделительные знаки не повторялись больше чем 1 раз
что надо дописать незнаю
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
18.03.2018, 10:33
Ответы с готовыми решениями:

Регулярные выражения в g++
Привет всем! этот пример взял из http://www.cplusplus.com/reference/regex/regex_search/ и скомпилировал g++ . #include &lt;iostream&gt; ...

Регулярные выражения
Доброй ночи! Использую вот такой код void INITDIALOG(void* p){ char* bufer = new char; server.GetLocList(bufer); char * t =...

Регулярные выражения
Можете подсказать что это значит? &quot;Max-Forwards*(\d{3,}|7)&quot; я без понятия что это и откуда это( Добавлено через 4 минуты я уже...

3
 Аватар для igorrr37
2878 / 2025 / 991
Регистрация: 21.12.2010
Сообщений: 3,779
Записей в блоге: 10
18.03.2018, 13:16
Вот регулярка но в ней есть ограничение: после знака пунктуации должен быть хоть один пробел. Связано это с тем чо VS не поддерживает регекс-кондишены. На буст-регексах можно было бы сделать без этого ограничения.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <iostream>
#include <regex>
#include <string>
 
 
int main()
{
    std::string str("Hello, 2018,  world.");
    std::regex reg("^[А-ЯЁA-Z][а-яёa-z]*? *?[[:punct:]]?(?: +?(?:[а-яёa-z]+?|\\d+?) *?[[:punct:]]?)* *?$");
    if (std::regex_match(str, reg))
    {
        std::cout << "OK" << std::endl;
    }
    else
    {
        std::cout << "FAIL" << std::endl;
    }
}
0
1 / 1 / 0
Регистрация: 19.12.2017
Сообщений: 147
18.03.2018, 19:24  [ТС]
"^[A-ZА-Я][а-яa-z0-9 -]*[.,]?" я вот так написал вроде работает это ведь правильно?

Добавлено через 6 минут
если полный код то так
C++
1
2
3
4
5
6
7
8
9
10
11
12
void Robot::Regular()
{
    string info = "Verder, ";
    cmatch result;
    regex regular("^[A-ZА-Я][а-яa-z0-9 -]*[.,]?");
        
    if (regex_search(info.c_str(), result, regular))
        cout << "true" << endl;
    for (int i = 0; i < result.size(); i++) {
        cout << result[i] << endl;
    }
}
Добавлено через 5 минут
есть ещё допоолнительное задание
в класс-список добавить метод,который выводит на экран список всех объектов, которые имеют одно или более полей с минимум двумя словами(проверку сделать с помощью регулярных выражений).
0
1137 / 685 / 412
Регистрация: 07.11.2015
Сообщений: 1,102
19.03.2018, 00:57
Цитата Сообщение от igorrr37 Посмотреть сообщение
Вот регулярка но в ней есть ограничение: после знака пунктуации должен быть хоть один пробел.
Чуть доработать регулярку и можно снять это ограничение.
^[А-ЯЁA-Z][а-яёa-z0-9 ]*([[:punct:]] *(([а-яёa-z0-9]+ *)+|$))*$


Если доступен "negative lookahead" (?! )
^[А-ЯЁA-Z]([а-яёa-z0-9 ]|[[:punct:]](?! *[[:punct:]]))*$
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
19.03.2018, 00:57
Помогаю со студенческими работами здесь

Регулярные выражения в с++
Рылся рылся, нигде не нашел... Кто нибудь, объясните: 1) как установить эту библиотеку Regex. 2) Как заставить её работать. 3) И...

Регулярные выражения с++11
Просветите, пожалуйста, как из следующей строки &quot;123&lt;tag&gt;456&lt;/tag&gt;789&lt;tag&gt;987&lt;/tag&gt;654321&quot; с помощью регулярного выражения напечатать...

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

Регулярные выражения
Помогите написать регулярку. Пишу на RE2. Если в тексте встречается ******.moikrug.ru то нужно вытащить то что под звездочками. Буду...

[C++] Регулярные выражения
Знаю что в стандарте С нет регулярных выражений. Хочу попробывать собрать простую функцию поиска по шаблону регулярных выражений. ...


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
Символьное дифференцирование
igorrr37 13.02.2026
/ * Логарифм записывается как: (x-2)log(x^2+2) - означает логарифм (x^2+2) по основанию (x-2). Унарный минус обозначается как ! */ #include <iostream> #include <stack> #include <cctype>. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru