我正在开发一个Mac应用程序,我正在尝试替换使用NSString的stringByReplacingOccurrencesOfString。我正在做类似的事情:
NSString *new = [s stringByReplacingOccurrencesOfString:@"(special-tag)*.*</body" withString:html];
在NSString上。但每当我尝试使用带有正则表达式的函数时,它似乎都会破坏。有什么我想念的吗?我找到了一些外部正则表达式库,但我宁愿使用具有类似功能的内置内容。
有什么建议吗?提前致谢!编辑 - 我知道为什么它会破坏,我需要帮助弄清楚如何用正则表达式替换NSString
答案 0 :(得分:2)
顾名思义stringByReplacingOccurrencesOfString
OccurrencesOfString
这是一个字符串而不是RegEx。所以它会替换你的字符串而不是你的RegEx。
-----------被修改-----------------
我没有使用正则表达式,希望这会给你一个想法
NSString *string = @"this is your string";
NSError *error = NULL;
NSRegularExpression *regex = [NSRegularExpression regularExpressionWithPattern:@"\\b(a|b)(c|d)\\b" options:NSRegularExpressionCaseInsensitive error:&error];
NSString *modifiedString = [regex stringByReplacingMatchesInString:string options:0 range:NSMakeRange(0, [string length]) withTemplate:@"$2$1"];
答案 1 :(得分:0)
看一下NSRegularExpression
课程。听起来-stringByReplacingMatchesInString:options:range:withTemplate:
方法符合您的需求。您可能也喜欢–replaceMatchesInString:options:range:withTemplate:
。