3
我正在使用boost :: xpressive來解析我的文本文件。我想看看是否只有當行以'#'開頭(多次)。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_match不匹配?我認爲'##'應該匹配'^#+'。 – 2012-04-11 21:26:11
@Ayesha:'「##」'確實匹配'「^#+」',但是'「##這可能是我的行」(如你的問題的代碼)不會。引用[文檔](http://www.boost.org/doc/html/xpressive/user_s_guide.html#boost_xpressive.user_s_guide.quick_start),「*要使regex_match()成功,整個字符串必須與正則表達式匹配,從開始到結束。*「所以你的正則表達式必須是'」^#+。*「'以使'regex_match'能夠處理你的問題的輸入。提示:閱讀文檔。 ; - ] – ildjarn 2012-04-11 21:30:54
明白了!非常感謝。必須更仔細地重新閱讀文檔! – 2012-04-11 21:35:46