У меня проблема с регулярным выражением C++. Я получил строку типа «f 123/123 1234/123/124 12», и я хочу получить все числа до «/».Как использовать regex C++?
Это мое regexp: "\ s (\ d +)". Я пробовал его на http://rubular.com/, и он работает. Вот мой код:
std::regex rgx("\\s(\\d+)");
std::smatch match;
if (std::regex_search(line, match, rgx))
{
std::cout << "Match\n";
std::string *msg = new std::string();
std::cout << "match[0]:" << match[0] << "\n";
std::cout << "match[1]:" << match[1] << "\n";
std::cout << "match[2]:" << match[2] << "\n";
}
Но я получаю это:
Match
match[0]:123
match[1]:123
match[2]:
Я понимаю, что матч [0] не является "группы", как в Python и Ruby. Спасибо и извините за мой английский :)
'm.suffix() ул()'.? – suspectus
@suspectus, см. ['Match_resulsts :: suffix'] (http://www.cplusplus.com/reference/regex/match_results/suffix/) и [' match_resulsts :: str'] (http: //www.cplusplus .com/справочник/регулярное выражение/match_results/ул /). – falsetru
@suspectus, Извините, я неправильно понял. Вы имели в виду опечатку. Я починил это. Спасибо, что указали это. – falsetru