NSString *pattern = @"55555"; //
普通写法:
写什么,
就找什么
NSString *pattern = @"5{5}"; //
功能性的字符: {5}
表示重复5次
NSString *pattern = @"5{3,7}"; // {3,7}
表示重复3~7次,
会尽量找到最多的个数
NSString *pattern = @"5+"; // +
表示至少有一个,
只要大于等于1就能匹配到结果,
尽量匹配多个结果
NSString *pattern = @"1236+6+"; // 123固定,
6随意, +号只修改前一个字符
NSString *pattern = @"(1236)+6+"; // ()
表示优先级,
整体
NSString *pattern = @"[136]+"; // [ ]
表示组合,
可以是其中的做任意一个
NSString *pattern = @"[0123456789]+"; // [0123456789]表示任意整数
NSString *pattern = @"[0-5]+"; // [0-5]表示从0到5,
与[012345]一样
NSString *pattern = @"[a-z]+"; //
表示a到z的所有小写字符
NSString *pattern = @"^\\w"; // \w
表示字母,
汉字,
下划线,
数字
// ^
在没有[]时,
它表示匹配字符串的开始
(从第一个字符开始,
就必须是\w)
NSString *pattern = @"[^\\w]"; // // \W
等价于
[^\w]
// ^在[]里面时,
表示取反,
所以表示获取一个并非是(数字,
字母,
下划线,
汉字)的字符
NSString *pattern = @"[^abcxyz]"; //
表示非了abcxyz的任意一个
NSString *pattern = @".com$"; // &
表示匹配到字符串结束
NSString *pattern = @"^http://"; //
匹配必须以http://
开头
NSString *pattern = @"^科比$";
//
表示限定这个单词
NSString *pattern
= @"\\d{3,5}";
// 元字符(转义字符)
\d在正则当中表示任意整数, \d 等价 [0-9], 注意:
OC的字符串中, \不能直接写, 所以要写成\\d
匹配QQ号码 ——> @"^[1-9]\\d{5,10}$"
?
表示可有可无
匹配手机号码 —>
@"^(0|86)?1(([358][0-9])|(7[678])|4[57])\\d{8}$"
- 创建正则选项
NSString
*pattern =
@"^[\\w+]";
- 处理错误
NSError
*error;
- 创建正则表达式
NSRegularExpression
*regular = [[NSRegularExpression
alloc]initWithPattern:pattern
options:0
error:&error];
- 查找第一个 ( 查找到一个符合的就结束 )
NSTextCheckingResult
*textCheckingResult = [regular
firstMatchInString:content
options:0
range:NSMakeRange(0,
content.length)];
//
匹配项的位置
NSRange
range = textCheckingResult.range;
//
获取匹配项的字符
NSLog(@"查找到第一个匹配:
%@",[content
substringWithRange:range]);
- 查找全部匹配项
NSArray
<NSTextCheckingResult
*> *results = [regular
matchesInString:content
options:0
range:NSMakeRange(0,
content.length)];
//
遍历所有匹配项
for (NSTextCheckingResult
*result
in results)
{
NSLog(@"查找全部%@",[content substringWithRange:result.range]);
{
NSLog(@"查找全部%@",[content substringWithRange:result.range]);
}
========================将字符串转换为表情==========================
// ————原文本
NSString
*content =
self.lable.text;
NSMutableAttributedString
*attributedString = [[NSMutableAttributedString
alloc]initWithString:content];
// ————正则选项
NSString
*pattern =
@"\\[\\w+\\]";
// -----获取到所有匹配项
NSArray
*ranges = [content
matchesRangeWithPattern:pattern];
// --------遍历转换
for
(int
i =
0; i < ranges.count; i++)
{
NSValue
*value = ranges[ranges.count
- i -
1];
NSRange
range = value.rangeValue;
// -------获取图片
UIImage
*image = [UIImage
imageNamed:[content
substringWithRange:NSMakeRange(range.location
+
1, range.length
-
2)]];
// ---------创建富文本附件
LZTextAttachment
*attachment = [[LZTextAttachment
alloc]init];
attachment.image
= image;
// --------创建图片符文本
NSAttributedString
*imageString = [NSAttributedString
attributedStringWithAttachment:attachment];
// --------替换
[attributedString
replaceCharactersInRange:range
withAttributedString:imageString];
}
// 赋值
self.lable.attributedText
= attributedString;