나는 C++ 정규식을 작성해야하지만 regex_match에서 올바른 결과를 얻을 수 없다. C++을 처음 사용하기 때문에. 테스트 문자열은 다음과 같습니다. D10A7; 하자 말하기 unsigned_char[] stringToBeTested="D10A7";
내가 뭘해야 regex_match 난 10과 7 응용 프로그램의 사용을위한 두 가지 짧은 variabled에서 추출합니다. 'D'다음의 자릿수는 항상 'A'가 항상 인 한 자릿수 뒤에 두 자리 숫자입니다. 그것을 할 내 시도는 다음과 같습니다regex_match가 내 정규식과 일치하지 않는 이유는 무엇입니까?
boost::regex re("D([0-9])(/([0-9]))?");
boost::cmatch mr;
if (boost::regex_match(stringToBeTested, mr, re))
{
number = atoi(mr.str(1).c_str()); //Must be 10
axis = atoi(mr.str(2).c_str()); //Must be 7
}
은 세부에서 답을 설명해주십시오.
슬래시는 무엇입니까? 당신이 일치 시키려고하는 줄에는 슬래쉬가 없습니다. –
사이드 노트에서 더 많은 C++ ish ['std :: stoi()'] (http://en.cppreference.com/w/cpp/string/basic_string/stol)를 사용하는 것이 좋습니다. 순수한 C++ 코드에서 사용하지 말아야하는'.c_str()'을 없애라. e. 지. 'number = stoi (mr.str (1))'. – zett42