为什么regex_match与我的正则表达式不匹配
Why regex_match do not match my regex?
我必须编写一个C++正则表达式,但由于我是 C++ 新手,所以我无法在regex_match上获得正确的结果。用于测试的字符串为:D10A7;比方说unsigned_char[] stringToBeTested="D10A7";
我所要做的就是在regex_match之后,我将在两个不同的短变量中提取 10 和 7 以供应用程序使用。"D"之后的数字将始终为两位数,"A"之后的数字始终为两位数是一位数。我尝试这样做是:
boost::regex re("D([0-9])(/([0-9]))?");
boost::cmatch mr;
if ( boost::regex_match(stringToBeTested, mr, re ) )
{
number = atoi(mr.str(1).c_str()); //Must be 10
axis = atoi(mr.str(2).c_str()); //Must be 7
}
如何为这种情况生成提升::正则表达式,请详细解释答案。
regex_match
需要完整的字符串匹配。您需要提供一种模式来执行此操作。
boost::regex re("D([0-9]{2})A([0-9])");
这里
-
D
- 比赛D
-
([0-9]{2})
- 捕获到组 1 中的两位数字 -
A
- 比赛A
-
([0-9])
- 将一位数字捕获到组中 2。
请参阅上述正则表达式的在线演示。
相关文章:
- 带有多个字符分隔符的正则表达式
- 有人可以帮助我处理正则表达式吗?
- 查找中间两个数字的正则表达式的匹配项
- 如何编写将验证以下字符串的正则表达式?
- C++带有捕获组的正则表达式字符串文本
- 使用C++的正则表达式
- 需要忽略日期/序列号,但匹配字符串其余部分的正则表达式
- 需要支持定义正确的正则表达式
- python中的正则表达式删除了太多
- C++中的正则表达式存在问题
- 以下格式的正则表达式
- C++ 中用于搜索字符串模式的正则表达式
- C++无符号字符串类型的正则表达式
- 为什么regex_match与我的正则表达式不匹配
- regex_error。我的正则表达式有什么问题
- 为什么我的正则表达式会导致无限循环
- 觉得有必要改进我的正则表达式
- 我想一次将一个字符串与许多不同的正则表达式进行比较
- 我想用正则表达式处理字符串,但如何编写正确的正则表达式
- 我的正则表达式代码有什么问题?