파일의 따옴표 사이에 내용을 가져 오려고합니다. 정규식을 사용하고 있습니다. 당신이 볼 수 있듯이regex는 regex 테스터에서 작동하지만 C++에서는 작동하지 않습니다.
id=\"([^\"]+)\"|title=\"([^\"]+)\"
, 모든 특수 문자가 이스케이프 : 이것은 내가 사용하고있는 정규 표현식입니다. regex 테스터에서 완벽하게 작동하지만, C++ 코드에서 사용될 때 제목을 찾을 수 없습니다. ID는 항상 잘 발견됩니다. (전 |) 나는 몇 가지 변화, 그리고 심지어 제거 절반을 시도
id="60973129" title="EPA"
이것은 내가 사용하고 C++ 코드 :
std::regex rgx("id=\"([^\"]+)\"|title=\"([^\"]+)\"");
std::smatch match;
if (std::regex_search(line, match, rgx)) {
for (int i=0; i < match.size(); ++i) {
std::cout << match[i];
}
}
편집 : 내가 발견 별도로, 넣어 경우 title=\"(.+?)\"
이 작동하지만, 나중에 더 긴 라인을 스캔해야하기 때문에 필자는 여러 가지 정규식을 사용해야한다.
실제로 사용되는 코드를 표시 할 수 있습니까? – JBL
코드로 편집 됨. –
이것은 문제는 아니지만 욕심이 아닌 반복을 사용하면 간단해질 수 있습니다. –