假设我有一个包含控制代码“\ f3”的字符串(是的,它是RTF)。我想用另一个字符串替换该控制代码。目前我正在使用[mutableString replaceOccurrencesOfString:@"\f3" withString:@"replacement string" options:0 range:NSMakeRange(0, [mutableString length])];
这样可以正常工作,但有时代码可以是“\ f4”甚至是“\ f12”。如何更换这些字符串?我可以为每个使用replaceOccurrencesOfString
,但更好的方法是使用通配符,因为它可以是任意数字。
答案 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"];
警告:我没有测试过我的重复表达,而且我没有那么好,第一次就把它们弄好了;我只知道正则表达式是你前进的方向,它必须像那样看某些东西;)