我正在使用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/