Показать сообщение отдельно

  #5  
Старый 06.03.2016, 13:15
Dark_Knight
Флудер
Регистрация: 18.03.2013
Сообщений: 4,080
С нами: 6921957

Репутация: 183


По умолчанию

Цитата:
Сообщение от McFree  

Я вроде как получил регулярку но, мне нужно получить 2 значения, это можно получить из одной строки?
if (std::regex_match(param, res, std::regex("/([A - Z] [1 - 24])/ig")))
соответственно A-Z одна переменная, 1-24 вторая. Или все же делать через 2 регулярки?
да и для сравнения через strcpy нужны чар значения, как их сравнивать теперь?
Зачем тебе чар, когда у тебя есть std::string? Регулярку ты не правильно записал. В моей все тоже самое. Индификатор /i нужен для регистронезависимости, /g для мультилайна(несколько строк) тебе оно не надо. std::smacth - это вектор полученных результатов.

if(std::regex_match(param, res, std::regex(R"(^\w \d$)")){

std::string bukva = res[1].str();

byte chiclo = std::stoi(res[1].str()); // ot 0 do 255;

if(bukva == "a" || bukva == "A"){

SF->Log("true bukva");

}

if(chiclo == 5 || chiclo == 25){

SF->Log("true chiclo");

}

}

else{

SF->Log("Формат [Буква] [Число]");

}

Учись работать с std::string. Они функциональнее.
 
Ответить с цитированием