我正在使用boost::xpressive来解析我的文本文件。我想看看是否仅当行以“#”开头(多次)。

我正在使用以下代码

std::string str1 = "## this could be my line";
sregex rex1 = sregex::compile("^#+");
smatch result1;
if(regex_match(str1,result1,rex1){
    std::cout << result1[0] << '\n';
}else{
std::cout << "match not found!\n";
}

但是,即使行以#开头,我总是会收到“找不到匹配项!”。有人能帮我一下吗?

顺便说一句,有人可以使用boost::xpressive'bos'来帮助我编写rex1语句吗?

谢谢!
Ayesha

最佳答案

使用 regex_search 而不是regex_match

这是rex1的静态xpressive语法:

bos >> +as_xpr('#');

关于c++ - boost::xpressive看到序列的开始,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/10114080/

10-11 18:00