-2
我想从输入字符串中获取一组命令。命令由像这样的“move50”的字符和值组成。 我有像“move90rotate50”输入字符串中的多个命令,我想要组“move90”和“rotate90”。为命令创建正则表达式
我想这正则表达式:
std::regex regex("([a - z] + [0 - 9] +)");
,但它会返回一个组。
感谢。
我想从输入字符串中获取一组命令。命令由像这样的“move50”的字符和值组成。 我有像“move90rotate50”输入字符串中的多个命令,我想要组“move90”和“rotate90”。为命令创建正则表达式
我想这正则表达式:
std::regex regex("([a - z] + [0 - 9] +)");
,但它会返回一个组。
感谢。
您可以使用
[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';
}
https://www.youtube.com/watch?v=DnQqYXK21pg –
由于只有一对括号,因此只有一个组。 –