RTUILabel+正则表达式
RTLabel和RegexKitLite都要导入第三方库
使用Regexkitlite库进行正则表达式的解析
1.库是使用MRR,如果在ARC工程里面使用这个类,必须在project->build phases->compile resources里面将regexKitLite.m的编译指令设为:-fno-objc-arc
2.需要添加一个依赖库:libicucore.tbd
1.RTLable 富文本类库 替换成超链接
RTLabel *lable = [[RTLabel alloc]initWithFrame:CGRectMake(10, 100, 300, 0)];
lable.delegate = self;
NSString * string = @"@张三123:正则表达式好学么,@李四:给你一个网站:http://www.baidu.com/image/2323_303.jpg,#学习#,电话号码:(025)-69716261";
lable.text =string;
CGSize size =[lable optimumSize]; //计算尺寸
lable.frame = CGRectMake(10, 100, size.width, size.height);
NSString *regex = @"(@\\w+)|(#\\w+#)|(http(s)?://[0-9a-zA-Z./_]+)"; //正则表达式
NSArray *result = [string componentsMatchedByRegex:regex];
for (NSString * str in result) {
NSString * newKeyword = [NSString stringWithFormat:@"<a href='http://www.baidu.com'>%@</a>",str];
string = [string stringByReplacingOccurrencesOfString:str withString:newKeyword]; //替换文本
}
lable.text = string;
2.正则表达式
NSString * str = @"@张三123:你在哪里呀?@李四:我在这!#在哪里# http://www.baidu.com 电话号码:(025)88888888,025-88888888";
NSString * regex = @"@\\w+";
NSString * regex = @"#\\w+#";
NSString * regex = @"(@\\w+)|(#\\w+#)";
NSString * regex = @"http(s)?://[0-9a-zA-Z./_]+";网址
NSString * regex = @"(\\()?(\\d){3}(\\))?(-)?(\\d){8}";//电话号码
NSArray * result = [str componentsMatchedByRegex:regex];
for (NSString * str in result) {
NSLog(@"%@",str);
}
RTUILabel+正则表达式的更多相关文章
- JS正则表达式常用总结
正则表达式的创建 JS正则表达式的创建有两种方式: new RegExp() 和 直接字面量. //使用RegExp对象创建 var regObj = new RegExp("(^\\s+) ...
- Python高手之路【五】python基础之正则表达式
下图列出了Python支持的正则表达式元字符和语法: 字符点:匹配任意一个字符 import re st = 'python' result = re.findall('p.t',st) print( ...
- C# 正则表达式大全
文章导读 正则表达式的本质是使用一系列特殊字符模式,来表示某一类字符串.正则表达式无疑是处理文本最有力的工具,而.NET提供的Regex类实现了验证正则表达式的方法.Regex 类表示不可变(只读)的 ...
- C#基础篇 - 正则表达式入门
1.基本概念 正则表达式(Regular Expression)就是用事先定义好的一些特定字符(元字符)或普通字符.及这些字符的组合,组成一个“规则字符串”,这个“规则字符串”用来判断我们给定的字符串 ...
- JavaScript正则表达式,你真的知道?
一.前言 粗浅的编写正则表达式,是造成性能瓶颈的主要原因.如下: var reg1 = /(A+A+)+B/; var reg2 = /AA+B/; 上述两个正则表达式,匹配效果是一样的,但是,效率就 ...
- Python 正则表达式入门(中级篇)
Python 正则表达式入门(中级篇) 初级篇链接:http://www.cnblogs.com/chuxiuhong/p/5885073.html 上一篇我们说在这一篇里,我们会介绍子表达式,向前向 ...
- 【JS基础】正则表达式
正则表达式的() [] {}有不同的意思. () 是为了提取匹配的字符串.表达式中有几个()就有几个相应的匹配字符串. (\s*)表示连续空格的字符串. []是定义匹配的字符范围.比如 [a-zA-Z ...
- JavaScript 正则表达式语法
定义 JavaScript定义正则表达式有两种方法. 1.RegExp构造函数 var pattern = new RegExp("[bc]at","i"); ...
- [jquery]jquery正则表达式验证(手机号、身份证号、中文名称)
数字判断方法:isNaN()函数 test()方法 判断字符串中是否匹配到正则表达式内容,返回的是boolean值 ( true / false ) // 验证中文名称 function isChin ...
随机推荐
- 经典SQL语句大全(转载)
原文http://www.cnblogs.com/yubinfeng/archive/2010/11/02/1867386.html#top 一.基础 1.说明:创建数据库CREATE DATABAS ...
- linux 下执行.sh文件总是提示permission denied
linux 下执行.sh文件总是提示permission denied 如果你是root登陆的话(不是的话,切换到root用户,对*.sh赋可执行的权限) chmod 777 *.sh or ch ...
- ext.net中ComboBox空间实现模糊查询
ComboBox中的属性添加Mode="Local"可以实现第一个字的模糊查询但是搜索中间的字无法实现 现提供一下方法使用正则表达式实现全模糊查询 <ext:ComboBox ...
- Java Timer触发定时器
XML: <!-- Java Timer定时 --> <!-- <bean id="shortUrlTask" class=" com.sprin ...
- qq去广告
首先呢,在文件资源管理器中选择查看"隐藏的项目"或"显示隐藏的文件.文件夹和驱动器"(入口不一样,选择显示隐藏文件的方式也不一样),随后进入 C:\Users\ ...
- Qt Library 链接库
官方教程:http://wiki.qt.io/How_to_create_a_library_with_Qt_and_use_it_in_an_application http://qimo601.i ...
- Oracle中index by binary_integer的作用
如语句:type numbers is table of number index by binary_integer;其作用是,加了”index by binary_integer ”后,num ...
- FTP进行上传下载文件
1.需要引入外部jar包:commons-net-2.0.jar(或者是子包commons-net-ftp-2.0.jar) 2.需下载ftp服务器 3. 本地电脑访问ftp服务器格式:ftp://用 ...
- rpm包制作
ubuntu下先下载sudo apt-get install rpm就行了. 然后测试下rpm和rpmbuild命令都是存在的.好了,OK. rpm安装包的制作有严格的自定义的路径,这个路径是在/us ...
- python模块学习之random
模块源码: Source code: Lib/random.py 文档:http://docs.python.org/2/library/random.html 常用方法: random.random ...