iOS 开发-从一个字符串中检测出网址

写在前面:在开发过程中,有时候我们需要对一段文字进行网址检测,并显示出不一样的颜色,这时就需要利用正则表达式进行网址解析。解析出网址后再利用富文本进行展示不一样的字体颜色。

+ (NSArray *)getWebsitesWithString:(NSString *)string
{
    NSError *error;
    //    NSString *regulaStr = @"\\bhttps?://[a-zA-Z0-9\\-.]+(?::(\\d+))?(?:(?:/[a-zA-Z0-9\\-._?,'+\\&%$=~*!():@\\\\]*)+)?";
    NSString *regulaStr = @"((http[s]{0,1}|ftp)://[a-zA-Z0-9\\.\\-]+\\.([a-zA-Z]{2,4})(:\\d+)?(/[a-zA-Z0-9\\.\\-~!@#$%^&*+?:_/=<>]*)?)|(www.[a-zA-Z0-9\\.\\-]+\\.([a-zA-Z]{2,4})(:\\d+)?(/[a-zA-Z0-9\\.\\-~!@#$%^&*+?:_/=<>]*)?)";
    NSRegularExpression *regex = [NSRegularExpression regularExpressionWithPattern:regulaStr options:NSRegularExpressionCaseInsensitive error:&error];
    NSArray *arrayOfAllMatches = [regex matchesInString:string options:0 range:NSMakeRange(0, [string length])];
    NSMutableArray *result = [NSMutableArray array];
    for (NSTextCheckingResult *match in arrayOfAllMatches)
    {
        NSString *substringForMatch = [string substringWithRange:match.range];
        NSLog(@"%@",substringForMatch);
        [result addObject:substringForMatch];
    }
    return (NSArray *)result;
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 175,929评论 25 709
  • 1:睡前不要玩手机,这点最近没做好,导致最近晚上睡眠不好2:睡前不要喝水,睡一半老喜欢起来上厕所,我擦。3:早上来...
    lintong阅读 1,247评论 0 1
  • 近期又有一些减肥瘦身的宝宝来找我交流,都是一些减肥瘦身的专业问题,以及问我的减肥瘦身的经验等。 首先,声明哦,在2...
    快乐瘦身瘦朵朵阅读 2,990评论 0 1

友情链接更多精彩内容