替换包含任何数字的字符串的出现次数

时间:2011-11-16 10:03:13

标签: ios string

假设我有一个包含控制代码“\ f3”的字符串(是的,它是RTF)。我想用另一个字符串替换该控制代码。目前我正在使用[mutableString replaceOccurrencesOfString:@"\f3" withString:@"replacement string" options:0 range:NSMakeRange(0, [mutableString length])];

这样可以正常工作,但有时代码可以是“\ f4”甚至是“\ f12”。如何更换这些字符串?我可以为每个使用replaceOccurrencesOfString,但更好的方法是使用通配符,因为它可以是任意数字。

1 个答案:

答案 0 :(得分: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"];

警告:我没有测试过我的重复表达,而且我没有那么好,第一次就把它们弄好了;我只知道正则表达式是你前进的方向,它必须像那样看某些东西;)