在开发中遇到表情问题的时候,比如[惊恐]、[吓]、[疑问]。想要在一句话中找到对应的表情,比如“我很喜欢你啊[亲亲]给我一次机会吧[可怜][哈哈]”。我们可以用谓词(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) {
}
}