stringByReplacingOccurrencesOfString正则表达式

时间:2012-02-13 05:11:43

标签: objective-c macos cocoa

我正在开发一个Mac应用程序,我正在尝试替换使用NSString的stringByReplacingOccurrencesOfString。我正在做类似的事情:

NSString *new = [s stringByReplacingOccurrencesOfString:@"(special-tag)*.*</body" withString:html];

在NSString上。但每当我尝试使用带有正则表达式的函数时,它似乎都会破坏。有什么我想念的吗?我找到了一些外部正则表达式库,但我宁愿使用具有类似功能的内置内容。

有什么建议吗?提前致谢!编辑 - 我知道为什么它会破坏,我需要帮助弄清楚如何用正则表达式替换NSString

2 个答案:

答案 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"];

以下是NSRegularExpression Class Reference

答案 1 :(得分:0)

看一下NSRegularExpression课程。听起来-stringByReplacingMatchesInString:options:range:withTemplate:方法符合您的需求。您可能也喜欢–replaceMatchesInString:options:range:withTemplate: