我试图在C++中使用boost::regex构造一个正则表达式,该表达式将匹配以MOV或:\\d:\\d-\\d:\\d后面的JMP开头的单词。
例如,MOV:1:2-3:4或JMP:2:2-3:5。
我试着用表达式作为(MOV|JMP):\\d:\\d-\\d:\\d,但是对于上面的两个例子,它是计算假的。
我有两个问题:
发布于 2013-05-27 20:51:19
以下内容对我来说是完美的。
#include <iostream>
#include <boost/regex.hpp>
int
main(int argc, char** argv)
{
boost::regex it("(MOV|JMP):\\d:\\d-\\d:\\d");
bool matches = boost::regex_match("MOV:1:2-3:4", it);
std::cout << matches << std::endl;
return 0;
}以下是汇编的内容:
svengali ~ % g++ main.c -lboost_regex
svengali ~ % a.out
1
svengali /tmp % g++ --version
g++ (Debian 4.7.2-5) 4.7.2你是怎么输入这个表达式的?如果它不是字符串文字,您可能不需要转义反斜杠。
https://stackoverflow.com/questions/16780082
复制相似问题