我想从输入字符串中获取一组命令。命令由字符和值组成,如此" move50"。 我在输入字符串中有多个命令,如" move90rotate50"我想要小组" move90"和" rotate90"。
我试过这个正则表达式:
std::regex regex("([a - z] + [0 - 9] + )");
但会返回一组。
感谢。
答案 0 :(得分:1)
您可以使用
[a-zA-Z]+\d+
请参阅regex demo。要在C ++中定义它,请使用像R"([a-zA-Z]+\d+)"
这样的原始字符串文字。
要获取所有匹配项,请使用std::sregex_iterator()
。请参阅IDEONE demo:
std::regex r(R"([a-zA-Z]+\d+)");
std::string s = "move90rotate50";
for(std::sregex_iterator i = std::sregex_iterator(s.begin(), s.end(), r);
i != std::sregex_iterator();
++i)
{
std::smatch m = *i;
std::cout << "Match value: " << m.str() << '\n';
}