您的位置:首页 > 其它

关于用NSRegularExpression来找出表情和网址

2015-11-12 09:34 246 查看
在开发中遇到表情问题的时候,比如[惊恐]、[吓]、[疑问]。想要在一句话中找到对应的表情,比如“我很喜欢你啊[亲亲]给我一次机会吧[可怜][哈哈]”。我们可以用谓词(NSPredicatel类)来查找,也可以用NSRegularExpression来解决这类问题。

下面直接上代码

-(void)parseString{

//组装一个字符串,需要把里面的网址解析出来

NSString *urlString=@"sfdsf[惊恐][吓][哈哈]";

//NSRegularExpression类里面调用表达的方法需要传递一个NSError的参数。下面定义一个

NSError *error;

//http+:[^\\s]*
这个表达式是检测一个网址的。 例如:sfdsfhttp:www.baidu.com

//\\[[a-zA-Z0-9\\u4e00-\\u9fa5]+\\]
这个表达式是检测类似[惊恐]、[吓]这种表情的

NSRegularExpression *regex = [NSRegularExpressionregularExpressionWithPattern:@"\\[[a-zA-Z0-9\\u4e00-\\u9fa5]+\\]"options:0error:&error];

if (regex !=
nil) {

NSTextCheckingResult *firstMatch=[regex
firstMatchInString:urlString
options:0range:NSMakeRange(0, [urlStringlength])];

if (firstMatch) {

NSRange resultRange = [firstMatch
rangeAtIndex:0];
//等同于 firstMatch.range ---相匹配的范围

//从urlString当中截取数据

NSString *result=[urlString
substringWithRange:resultRange];

//输出结果

NSLog(@"%@",result);

}
}

}

2.使用正则表达式来判断

//初始化一个NSRegularExpression 对象,并设置检测对象范围为:0-9

NSRegularExpression *regex2 = [NSRegularExpression regularExpressionWithPattern:@"^[0-9]*$" options:0 error:nil];

if (regex2)

{//对象进行匹配

NSTextCheckingResult *result2 = [regex2 firstMatchInString:textField.text options:0 range:NSMakeRange(0, [textField.text length])];

if (result2) {

}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: