2013-02-13 3 views
1

나는 regexp에 익숙하지 않고 QRegExp에서 lookahead 어설 션 기능을 사용하여 문자열의 길이를 확인하려고합니다. 다음은 매우 간단한 예입니다.앞서 QRegExp에서 작동하지 않습니까?

int main(int argc, char* argv[]) 
{ 
    QRegExp regexp("(?=^.{0,5}$)[0-9]*"); 
    qDebug() << "result:" << regexp.exactMatch("12345"); 
    return 1; 
} 

"result : false"가 출력됩니다.

나는이 정규식과 문자열을이 웹 페이지 : http://regexpal.com/에서 테스트하여 일치하는 것을 보여줍니다.

아이디어가 있으십니까? 미리 감사드립니다.

+1

더 많은 정보 제공 – NAZIK

+0

내 RegExp 지식이 좋지 않지만 문서에서 'greedy quantifiers'와 관련된 RegExp 패턴 구문이 2 가지 있음을 확인했습니다. 귀하의 테스트가 이에 해당합니까? 문서 : http://qt-project.org/doc/qt-4.8/qregexp.html#greedy-quantifiers – cmannett85

+0

정규 표현식은 괜찮지 만, 일부 정규식 엔진은 가변 길이 둘러보기 어설 션에서 작동하지 않습니다. QRegExp가 그 중 하나 일 것입니다. –

답변

0

나를 위해 QT 4.8.6을 사용하면 "결과 : true"가 올바르게 표시됩니다. 프랭키 테 케니 만 (FrankieTheKneeMan)이 제안했듯이 ^을 앞이나 뒤쪽에 넣으면 상관 없습니다.