基本用法
- 创建需要匹配的字符串
- 创建
NSRegularExpression
对象
- 执行匹配操作
//1、需要匹配的字符串
NSString *string = @"4fjasfioew47f547ji443fcdjhghweu445554ed4";
//2、创建`NSRegularExpression`对象
//2.1、匹配样式
NSString *pattern = @"^\\dF*\\d$";//一个数字开头并结尾的,中间有任意个F
NSRegularExpression *regex = [[NSRegularExpression alloc] initWithPattern:pattern options:0 error:nil];
//3、测试字符串
NSArray *results = [regex matchesInString:string options:0 range:NSMakeRange(0, string.length)];
NSLog(@"%ld",results.count);
常见匹配样式
NSString *pattern = @"[0-9]";//寻找字符串里面的数字
NSString *pattern = @"3fc";//寻找字符串里面的"3fc"
NSString *pattern = @"[7r4]";//代表找到中括号里面的其中一个字符串就行了
NSString *pattern = @"[a-z]";//代表小写的a-z
NSString *pattern = @"[a-zA-Z]";//代表所有英文字母,包括大小写
NSString *pattern = @"[0-9][0-9]";//找连续连在一起的两个数字,单个数字不算,大于两个的都符合
NSString *pattern = @"\\d\\d\\d";//找连续连在一起的三个数字,单个、两个数字不算,大于三个的都符合
NSString *pattern = @"\\d{5}";//五个数字连在一起的
NSString *pattern = @"\\d{4}d{3}";//四个数字三个d连在一起的
NSString *pattern = @"\\d{2,4}";//找出两个到四个连在一起的数字
NSString *pattern = @"^\\d";//数字开头的
NSString *pattern = @"^\\d{4}";//以4个数字开头的
NSString *pattern = @"\\d$";//数字结尾的
NSString *pattern = @"\\d{3}$";//以3个数字结尾的
NSString *pattern = @"^\\d{2}[0-9a-zA-Z]*\\d$";//以2个数字开头,一个数字结尾的,中间随意
NSString *pattern = @"^\\d.*\\d$";//一个数字开头并结尾的,中间随意(.表示任何东西,*号代表有多少个都可以)
NSString *pattern = @"^\\dF*\\d$";//一个数字开头并结尾的,中间有任意个F
常见使用场景
NSString *string = @"abcdefDughijklmnopqDurst1234567Du890";
NSString *pattern = @"Du";
NSRegularExpression *regex = [[NSRegularExpression alloc] initWithPattern:pattern options:0 error:nil];
//3、测试字符串
NSArray *results = [regex matchesInString:string options:0 range:NSMakeRange(0, string.length)];
//遍历结果
for (NSTextCheckingResult *result in results) {
NSLog(@"%@",NSStringFromRange(result.range));
}
//一般的微博表情是用[哈哈],[hello]表示的
//解释:左边是[,中间是英文或者是中文,个数是至少一个,右边是]
NSString *pattern = @"\\[[a-zA-Z\\u4e00-\\u9fa5]+\\]";
//解释:@开头,中间是英文或者是中文或者是数字,个数是至少一个
NSString *pattern = @"@[a-zA-Z0-9\\u4e00-\\u9fa5]+";
//解释:#开头,#结尾,中间是英文或者是中文或者是数字,个数是至少一个
NSString *pattern = @"#[a-zA-Z0-9\\u4e00-\\u9fa5]+#\\$";
NSString *patterm = @"^1[3578]\\d{9}$";//13,15,17,18等数字开头,中间有9个数字,并以数字结尾
NSRegularExpression *regex = [[NSRegularExpression alloc] initWithPattern:patterm options:0 error:nil];
//测试字符串
NSArray *results = [regex matchesInString:string options:0 range:NSMakeRange(0, string.length)];
if(results.count > 0){
NSLog(@"是电话码号");
}