• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

objective-c - 搜索子字符串(NSString)

[复制链接]
菜鸟教程小白 发表于 2022-12-13 08:06:04 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题

搜索由## $$ 括起来的子字符串的最佳方法是什么?例如,我有一些这样的文字:

Lorem ##ipsum$$ dolor sit amet,##consectetur$$ adipisicing elit,sed do eiusmod tempor incididunt ut labore et dolore magna aliqua。 Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat。

我想得到 ipsumconsectetur 这两个词。我知道我可以使用 NSString rangeofsubstring 方法,但是有更好的方法吗?基本上,找到一个由其他 2 个字符串包围的字符串? 谢谢



Best Answer-推荐答案


您可以使用 NSRegularExpression (警告:仅限 iOS4+)使用 RegEx 模式匹配您的子字符串(例如 @"##.*$$" 通常)。

然后很容易遍历结果匹配(我首选的方式是使用枚举 block ,因为我们是 un iOS4 :-)):

NSRegularExpression *regex = [NSRegularExpression regularExpressionWithPattern"##(.*)$$" options:NSRegularExpressionCaseInsensitive error:nil];
[regex enumerateMatchesInString:yourString options:0 range:NSMakeRange(0, [yourString length]) usingBlock:
    ^(NSTextCheckingResult *match, NSMatchingFlags flags, BOOL *stop) {
        NSRange range = [match rangeAtIndex:1]; // range of string in first parens
        NSString* oneWord = [yourString substringWithRange:range];
    }
];

注意:如果需要支持pre-iOS4版本,可以查看NSPredicate但它的灵 active 要差得多(......我猜对于iOS4之前的版本,使用rangeOfSubstring可能是最好的选择,因为NSPredicate只会告诉你字符串是否匹配但不允许你获取子字符串.. .)

关于objective-c - 搜索子字符串(NSString),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6525601/

回复

使用道具 举报

懒得打字嘛,点击右侧快捷回复 【右侧内容,后台自定义】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关注0

粉丝2

帖子830918

发布主题
阅读排行 更多
广告位

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap