【问题标题】:stringByReplacingOccurrencesOfString Regular ExpressionstringByReplacingOccurrencesOfString 正则表达式
【发布时间】:2017-08-22 10:40:35
【问题描述】:

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

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

在 NSString 上。但是,每当我尝试将此函数与正则表达式一起使用时,它似乎都会中断。有什么我想念的吗?我找到了一些外部正则表达式库,但我宁愿使用内置的具有类似功能的东西。

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

【问题讨论】:

  • 它将替换(special-tag)*.*&lt;/body 字符串而不是(special-tag)*.*&lt;/body reg ex
  • 对,我只是想知道如何用正则表达式替换 NSString

标签: objective-c macos cocoa


【解决方案1】:

顾名思义 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

【讨论】:

  • 谢谢!如果可能的话,我更想知道如何使用正则表达式来做到这一点
【解决方案2】:

看看NSRegularExpression 类。听起来-stringByReplacingMatchesInString:options:range:withTemplate: 方法将满足您的需求。您可能还喜欢–replaceMatchesInString:options:range:withTemplate:

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-12-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-03-21
    相关资源
    最近更新 更多