iphone - 如何进行向后搜索以找到第二个空格/空白并将其替换为另一个字符串?

标签 iphone objective-c c regex xcode

又是我。刚才我问过一个类似的问题,但这个问题有点复杂。我正计划使用 RegexKitLite 来做我需要做的事情,但我相信没有它也可以完成。我有一个 NSString,其中有一些带有空格/空格的单词,我想获取字符串中最后一个单词左侧的最后一个空格。下面的示例字符串:

NSString *string = @"Here is an example string HELLO ";

正如您在上面的字符串中看到的那样,字符串的末尾有一个空格/空白。我希望能够获取 HELLO 左侧的空格/空白,并将其替换为我自己的文本/字符串。我正在使用 NSString 的 NSBackwardsSearch,但它不起作用。

NSString *spaceReplacement = @"text that i want";
    NSString *replaced = [snipet [string rangeOfString:substring options:NSBackwardsSearch].location:@" " withString:spaceReplacement];
    NSLog(@"%@", replaced);

任何帮助都会有帮助,我只是厌倦了尝试修复这个东西,它让我发疯。我以为我可以用 RegexKitLite 做到这一点,但考虑到我正在使用的时间框架,它的学习曲线对我来说太陡峭了。我很高兴 Jacob R. 推荐我使用 NSString 的方法:-)

最佳答案

这个解决方案假设你的字符串末尾总是有一个空格......它应该转换

Here is an example string HELLO

...到:

Here is an example stringtext that i wantHELLO

...因为这就是我所理解的你想要做的。

代码如下:

NSString *string = @"Here is an example string HELLO ";

NSRange rangeToSearch = NSMakeRange(0, [string length] - 1); // get a range without the space character
NSRange rangeOfSecondToLastSpace = [string rangeOfString:@" " options:NSBackwardsSearch range:rangeToSearch];

NSString *spaceReplacement = @"text that i want";
NSString *result = [string stringByReplacingCharactersInRange:rangeOfSecondToLastSpace withString:spaceReplacement];

技巧是使用 [NSString rangeOfString:options:range:] 方法。

注意:如果字符串末尾并不总是包含空格,则此代码可能会失败,并且您需要稍微复杂一些的代码。如果是这样,请告诉我,我会更新答案。

免责声明:我没有测试代码,但它应该可以正常编译和工作。

关于iphone - 如何进行向后搜索以找到第二个空格/空白并将其替换为另一个字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4515058/

相关文章:

iphone - CGContextRef 损坏了吗?

iOS * 单元性能 : Autolayout vs Frame?

ios - iTunes Connect 无法删除应用程序

c - 改进 Windows 应用程序中的堆内存使用情况报告

c++ - typedef struct name 没有后续结构定义的名称

c - printf 只取最后一次 scanf

iphone - Cocos2D游戏教程/游戏建议

iphone - 基本货币转换应用程序

iphone - 使用带有动态呈现项目的 UIScrollView 消除滚动延迟

ios - 三元运算符在 'if' 条件下没有任何内容