1
pcre ++ 라이브러리로 명명 된 부분 문자열을 캡처하고 싶습니다.pcre ++에서 캡처 된 부분 문자열 지정
pcre 라이브러리에는이 기능이 있지만 pcre ++에는이 기능이 구현되지 않았다는 것을 알고 있습니다.
이것은 내가 (단순한 예) 지금이되었다된다
pcrepp::Pcre regex("test (?P<groupName>bla)");
if (regex.search("test bla"))
{
// Get matched group by name
int pos = pcre_get_stringnumber(
regex.get_pcre(),
"groupName"
);
if (pos == PCRE_ERROR_NOSUBSTRING) return;
// Get match
std::string temp = regex[pos - 1];
std::cout << "temp: " << temp << "\n";
}
내가 디버깅 할 경우, POS 리턴 1, 그리고 그 권리 (? Pbla)는 번째 submatch (0은 전체입니다 시합). 괜찮을거야. 하지만 ... regex.matches()는 0을 반환합니다. 이유는 무엇입니까?
btw. pcre ++가 0으로 첫 번째 서브맵을 가리키는 결과를 다시 색인하기 때문에 나는 정규식을 수행하기 때문에 1. 1은 0, 2는 1, 3은 2 등이됩니다.
아무도이 문제를 해결하는 방법을 알고 있습니까? ?
pcre ++는 불완전한 라이브러리인데 불완전한 라이브러리, ~ 6yrs의 릴리즈, 어색한 연산자 오버로딩, 서브맵 색인 생성의 절름발이 ... 직선 pcre로 가거나 Google RE2 (http : // 코드)를 다운로드하십시오. google.com/p/re2/) – Stephen