objective-c - stringByReplacingOccurrencesOfString 正则表达式

标签 objective-c macos cocoa

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

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

在 NSString 上。但每当我尝试将这个函数与正则表达式一起使用时,它似乎就会崩溃。我有什么遗漏的吗?我找到了一些外部正则表达式库,但我宁愿使用具有类似功能的内置库。

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

最佳答案

顾名思义,stringByReplacingOccurrencesOfString OccurrencesOfString 它是一个字符串,而不是正则表达式。因此它将替换您的字符串而不是正则表达式。



-----------已编辑-----------------
我之前没有使用过正则表达式,希望这会给你带来想法

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

关于objective-c - stringByReplacingOccurrencesOfString 正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9255878/

相关文章:

objective-c - 无法更改 UILabel 中的字体大小

ios - 在 UIPickerView 中显示来自多个组件的文本

cocoa - 如何在Mac上登录到文件(类似于log4net)

android - libdvm.so 位置

ios - 加载 View Controller 而不显示 Nib

ios - 暂停和恢复 AnimateWithDuration 动画 ios

Unix Shell 无法识别 mySQL 命令

objective-c - NSStackView 只显示最新的自定义 View

cocoa - 正确使用 NSViewControllerrepresentedObject

objective-c - cocoa - 避免菜单模式