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";
}

Но я всегда получаю "совпадение не найдено!", Даже когда строки начинаются с #. Может ли кто-нибудь помочь мне здесь?

Кстати, может ли кто-нибудь также помочь мне в написании выражения rex1 с использованием boost::xpressive 'bos'?

Спасибо! Аиша

1 ответ

Решение

Использование regex_search вместо regex_match,

А вот статический синтаксис xpressive для rex1:

bos >> +as_xpr('#');
Другие вопросы по тегам