2011-11-16 6 views
0

제어 코드 "\ f3"(예 : RTF)이 포함 된 문자열이 있다고 가정 해 봅시다. 그 컨트롤 코드를 다른 문자열로 바꾸고 싶습니다. 현재 사용 중일 때 [mutableString replaceOccurrencesOfString:@"\f3" withString:@"replacement string" options:0 range:NSMakeRange(0, [mutableString length])];숫자가 포함 된 문자열을 대체하십시오.

잘 작동하지만 코드가 "\ f4"또는 "\ f12"일 수도 있습니다. 이 문자열을 어떻게 대체합니까? 각각에 대해 replaceOccurrencesOfString을 사용할 수 있지만 더 좋은 방법은 임의의 숫자 일 수 있으므로 와일드 카드를 사용하는 것입니다.

답변

2

정규식을 사용합니다.

정규 표현식의 작동 방식은 NSRegularExpression (iOS> = 4) 및 this page을 참조하십시오.

// Create your expression 
NSError *error = nil; 
NSRegularExpression *regex = 
    [NSRegularExpression regularExpressionWithPattern:@"\\b\f[0-9]*\\b" 
              options:NSRegularExpressionCaseInsensitive 
               error:&error]; 

// Replace the matches 
NSString *modifiedString = [regex stringByReplacingMatchesInString:string 
                 options:0 
                 range:NSMakeRange(0, [string length]) 
                withTemplate:@"replacement string"]; 

경고 :

당신은 뭔가를 원할 것입니다 내 regaular 표현을 테스트하지했고 나는 그들에게 권리 처음을 받고에서 위대한 아니에요; 난 그냥 정규 표현식이 당신을 위해 앞으로 나아갈 길임을 알고 있습니다. 무언가가입니다.)

+0

우수! 그것은 내가 찾고 있었던 바로 그 것이다. 정규 표현식과 관련이 있다고 생각했지만 지금까지는 항상 피할 수있었습니다! 내가 배워야한다고 생각해. – colincameron

관련 문제