Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 5.00/4: Рейтинг темы: голосов - 4, средняя оценка - 5.00
0 / 0 / 0
Регистрация: 29.06.2015
Сообщений: 61
1

Выбрать различные цифры из однотипных строк регулярными выражениями

05.08.2016, 10:00. Показов 837. Ответов 1
Метки нет (Все метки)

есть много таких строк:
<AddOrder price="100.20" orderId="199" operation="BUY" />
<DeleteOrder orderId="199" />
нужно выцепить отсюда по сути цифры, сделать массив где в первом столбце будет значение "price",во втором соответственно "orderId", а в третьем 1 если BUY, и 0 если чего другое, это нужно сделать пользуясь не только стандартными библиотеками. Много где советуют через подключение #include <boost/regex.hpp>, так шикарно мне делать нельзя, делал просто через строки, но чего то не хочет работать, хотелось бы через регулярные выражения сделать, но не знаю как мне посмотреть что стоит после регулярного выражения, и не знаю как запихнуть в в него значок кавычек? на форуме копался, есть нечто похожее, но без объяснения тяжко
0

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
05.08.2016, 10:00
Ответы с готовыми решениями:

Работа с регулярными выражениями С++
Опишите функцию анализа номера, обработайте ошибку указания номера у недопустимом формате...

Не получается работать с регулярными выражениями
Добрый день, коллеги! Обращаюсь с вопросом, потому что новичок. Мне необходимо, используя...

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

Обработка файов регулярными выражениями.
Задайте верное направление. Исходная задача. Необходимо обработать текстовый файл &quot;умным...

1
2226 / 1729 / 865
Регистрация: 21.12.2010
Сообщений: 3,073
Записей в блоге: 11
05.08.2016, 13:50 2
Лучший ответ Сообщение было отмечено ygarnui как решение

Решение

чтение строк из файла и вывод на экран результата, массивы не создаются, VS2015
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
#include <iostream>
#include <regex>
#include <string>
#include <fstream>
#include <iterator>
#include <sstream>
 
int main()
{
    std::ifstream ifs("in.txt");
 
    if (!ifs.is_open())
    {
        throw std::runtime_error("ifs.is_open() failed");
    }
 
    std::string str((std::istreambuf_iterator<char>(ifs)), std::istreambuf_iterator<char>());
    std::regex reg("<AddOrder +?price="([\\d\\.]*?)" +?orderId="([\\d]*?)" +?operation="(.*?)" *?/>");
    std::regex regBuy("(?:b|B)(?:u|U)(?:y|Y)");
    std::smatch res;
    std::sregex_iterator ib(str.begin(), str.end(), reg);
    std::sregex_iterator ie;
    std::string sPrice, sOrder, sOperation;
    double rPrice;
    unsigned rOrder;
    bool rBuy;
    std::stringstream ss;
    for (; ib != ie; ++ib)
    {
        sPrice = ib->operator[](1);
        sOrder = ib->operator[](2);
        sOperation = ib->operator[](3);
 
        //std::cout << sPrice << "  " << sOrder << "  " << sOperation << "\n";
 
        rBuy = std::regex_match(sOperation, regBuy);
 
        ss << sPrice << " " << sOrder;
        ss >> rPrice >> rOrder;
        ss.clear();
        std::cout << rPrice << "  " << rOrder << "  " << rBuy << "\n";
    }
    return 0;
}
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
05.08.2016, 13:50

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

Проверка на наличие подстроки регулярными выражениями
Здравствуйте. С помощью регулярных выражений я пытаюсь проверить наличие подстроки. Для этого пишу...

Работа с регулярными выражениями (парсинг txt-файла)
подскажите пожалуйста. хочу сделать парсер по файлу тхт написал вот такой код с регулярными...

Среди четырёхзначных чисел выбрать те, у которых все четыре цифры различные
Среди четырёхзначных чисел выбрать те, у которых все четыре цифры различные.

Проверка формата ввода аргументов командной строки регулярными выражениями
Часто при запуске программы на вход подаются дополнительные данные в определённом формате (взять...


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

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

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