2013-02-04 2 views
4

(NSMutableString)을 사용하여 전체 단어를 바꿀 수 있습니까?NSMutableString replaceOccurrencesOfString 전체 단어 바꾸기

예를 들어 "1/2"와 같이 문자열의 모든 분수를 바꾸려면 해당 분수 만 일치 시키길 원합니다. 따라서 "11/2"가 있다면 이 아니고은 "1/2"규칙과 일치해야합니다.

나는 이미 이것에 대한 답을 찾기 위해 노력했지만, 나는 운이 없다.

+0

"1/2"은 부분이 아닌 경우 항상 앞에옵니다 다른 번호의? –

+0

의견을 보내 주셔서 감사합니다. 아니, 그것은 괄호 안에있을 수 있습니다 "(1/2 ...)", 그것은 또한 문자열의 시작 부분에있을 수 있으며 문자열의 중간에있을 수 있습니다 ... – abellina

+0

나는 당신이 있어야한다고 생각 정규 표현식을 찾으십시오 : https://developer.apple.com/library/ios/#documentation/Foundation/Reference/NSRegularExpression_Class/Reference/Reference.html – Ultrakorne

답변

11

단어 경계 \b을 Regex와 함께 사용할 수 있습니다. 이 예제는 예제 문자열의 시작과 끝 부분에 "1/2"를 매치하지만 가운데 옵션도 모두 일치하지 않습니다.

// Create your expression 
NSString *string = @"1/2 of the 11/2 objects were 1/2ed in (1/2)"; 

NSError *error = nil; 
NSRegularExpression *regex = 
    [NSRegularExpression 
    regularExpressionWithPattern:@"\\b1/2\\b" 
         options:NSRegularExpressionCaseInsensitive 
          error:&error]; 

// Replace the matches 
NSString *modifiedString = 
[regex stringByReplacingMatchesInString:string 
           options:0 
            range:NSMakeRange(0, [string length]) 
          withTemplate:@"HALF USED TO BE HERE"]; 
+0

감사합니다 !! 이것은 내가 찾고 있었던 바로 그 것이다. – abellina

+1

문제 없습니다. 대부분의 경우 가장 쉬운 옵션이 일반적으로 정확하기 때문에 쉬운 옵션을 먼저 찾는 것을 잊지 마십시오. @ H2CO3의 옵션은 공백이 충분히 엄격한 구분 기호 인 경우에 나타납니다. –