2012-07-30 2 views
1

NSRegularExpression에 문제가 있습니다. 나는 그것이 나의 실수라고 확신하지만, 나는 그것을 이해할 수 없다. 이 코드가 있습니다NSRegularExpression 오류 : 거짓 일 때 들어가기

NSError *error = NULL; 
NSRegularExpression *regex = [NSRegularExpression   
           regularExpressionWithPattern: nextModelName 
           options:NSRegularExpressionCaseInsensitive 
           error:&error]; 
[regex enumerateMatchesInString:objTmplName options:0 range:NSMakeRange(0, [objTmplName length]) usingBlock:^(NSTextCheckingResult *match, NSMatchingFlags flags, BOOL *stop){ 

    NSLog(@"objTmplName:%@ nextModelName:%@",objTmplName,nextModelName); 
    }]; 

을 그리고 출력은 다음과 같습니다

2012-07-30 10:59:48.779 MyApp[8470:707] objTmplName:yaoygo nextModelName:\w* 
2012-07-30 10:59:48.799 MyApp[8470:707] objTmplName:yaoygo nextModelName:yo* 
2012-07-30 10:59:48.808 MyApp[8470:707] objTmplName:yaoygo nextModelName:yaoygo 

왜 때 objTmplName = yaoygonextModelName:yo*에 들어가?

내가하고 싶은 것은 내 objTmplName이 "yo ..."로 시작하면 true이고, 그렇지 않으면 false 여야합니다. 예를 들어

yooygo TRUE 
yaygo FALSE 
yayoyoyo FALSE 

답변

2

2012-07-30 10:59:48.799 MyApp[8470:707] objTmplName:yaoygo nextModelName:yo*

Why it get into when objTmplName = yaoygo and nextModelName:yo* ?

yo* 의미 : o (가능성 없음)의 임의의 수에 따라

y한다. 질문에 편집 한 후

yo+ 

:

당신이 적어도 하나의 o을 강제 할 경우, 사용

시도하고 정규식 사용 : 내 질문을 업데이트 해요 ^yo.*

+0

을 . 이것은 내가 excatly 여기 무엇을 해야하는지 아닙니다. – Kuba

+0

다음 사용하십시오 :'^ yo. * ' – sergio

+0

dot! 고맙습니다! 나는 초보자에 불과하다. – Kuba

관련 문제