2009-10-08 4 views
2

다음 코드가 "일치하지 않음"을 출력하는 이유는 누구나 알 수 있습니까?Boost.Regex odds

boost::regex r(".*\\."); 
    std::string s("app.test"); 
    if (boost::regex_match(s, r)) 
    std::cout << "match" << std::endl; 
    else 
    std::cout << "no match" << std::endl; 

답변

4

나는 전체 문자열에 대한 regex_match() 경기를 생각합니다. 대신 regex_search()을 시도해보십시오.

그것은 다음과 같은 정규식 일한 것 :

boost::regex r(".*\\..*"); 

regex_match() 기능. 하지만 다시 regex_search()이 당신이 찾고있는 것입니다.

+0

+1 - "정규 표현식 e와 모든 문자 시퀀스가 ​​정확히 일치하는지 확인합니다". http://www.boost.org/doc/libs/1_40_0/libs/regex/doc/html/boost_regex/ref/regex_match.html –

+0

그가 정말로'regex_search()'를 원한다고 생각합니다. –

+0

사실 그것은 그 것이었다. 나는 지금 어리 석다. 그래도 고마워요. 대답은 – ldx