gpt4 book ai didi

c++ - 使用 boost::regex 的正则表达式问题

转载 作者:太空宇宙 更新时间:2023-11-04 14:06:09 25 4
gpt4 key购买 nike

我正在尝试使用 boost::regex 在 C++ 中构造一个正则表达式,该正则表达式将匹配以 MOVJMP 开头的单词,然后是:\\d:\\d-\\d:\\d

例如,MOV:1:2-3:4JMP:2:2-3:5

我尝试将表达式作为 (MOV|JMP):\\d:\\d-\\d:\\d,但它对上述两个示例的计算结果为 false。

我有两个问题:

  1. 上面的表达式有什么问题?
  2. 如果我想忽略 MOV 和 JMP 的大小写,正则表达式是什么?

最佳答案

以下内容非常适合我。

#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

你是如何输入表达式的?如果它不是字符串文字,则可能不需要转义反斜杠。

关于c++ - 使用 boost::regex 的正则表达式问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16780082/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com