关于正则表达式的几篇文章学习

屏幕快照 2016-03-02 下午4.38.08.png

总结的好的两篇文章

第一篇
第二篇
其它扩展文章
第一篇
第二篇
正则表达式的所有符号含义

这几篇文章还没有仔细看看,先mark,在阅读这几篇文章之前也做过类似文字转化emoji的功能,但不同懂当时的正则表达式为什么这么写,大概读了这几篇文章总算有些了解。

举一个简单的🌰

比如我想获取到字符串 "速度快放假#啦啦啦#弄啥呢#123#"
所有被#包含的文字,并将其显示红色,实现跳转功能,如下图功能


🌰图.gif

这里说一下实现,其中点击事件是通过YYText框架实现的

NSString *str = @"速度快放假#啦啦啦#弄啥呢#123#";

NSMutableAttributedString *attributeStr = [[NSMutableAttributedString alloc] initWithString:str];

YYLabel *lab = [[YYLabel alloc] init];
NSError *error;
NSRegularExpression *regular = [NSRegularExpression regularExpressionWithPattern:@"#(...)#" options:0 error:&error];
if (error||regular==nil) {
    return;
}

NSArray *array = [regular matchesInString:str options:NSMatchingWithTransparentBounds range:NSMakeRange(0, str.length)];
for (NSTextCheckingResult *result in array) {
    
    NSRange range = result.range;
    [attributeStr yy_setTextHighlightRange:range color:[UIColor redColor] backgroundColor:[UIColor lightGrayColor] tapAction:^(UIView *containerView, NSAttributedString *text, NSRange range, CGRect rect) {
        UIAlertController *alerController = [UIAlertController alertControllerWithTitle:@"提示" message:@"点击了红色字体" preferredStyle:UIAlertControllerStyleAlert];
        UIAlertAction *action = [UIAlertAction actionWithTitle:@"确定" style:UIAlertActionStyleDefault handler:^(UIAlertAction * _Nonnull action) {
            
        }];
        [alerController addAction:action];
        [self presentViewController:alerController animated:YES completion:nil];
    }];
    
}

[lab setAttributedText:attributeStr];
[lab setFrame:CGRectMake(10, 30, 200, 40)];
[self.view addSubview:lab];
屏幕快照 2016-03-02 下午5.08.37.png

PS:如需转载请注明iOS小乔//www.greatytc.com/users/f029d92cedc0/latest_articles

如果能够帮到你,请你打赏支持我的创作(请小乔喝杯饮料😁)
©小乔

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容