IOS从字符串中获取指定字符之间的字符串
今天在项目中遇到一个解析字符串的需求,要求将字符串中冒号和分号中的字符串解析出来。感觉这个需求以后可能会遇到,就跟大家分享一下
下面是Oc代码
NSString* string=@”厂区名:养殖二厂;设发我发我备名:3号设备;are噶而过:温度;设备号:123456;”;
NSString* pattern=@”:|;”;//字符串的符号是中文的,正则表达式中的符号也为中文的,需要一致
NSRegularExpression *regex =[NSRegularExpression regularExpressionWithPattern:pattern options:0 error:nil];
NSArray *matches = [regex matchesInString:string options:0 range:NSMakeRange(0, string.length)];
NSMutableArray* rangeArr=[[NSMutableArray alloc] init];
for (NSTextCheckingResult* match in matches) {
[rangeArr addObject:[NSValue valueWithRange:match.range]];//找到每个分号和冒号的Range,存到数组
}
for (int i=0; i<rangeArr.count; i=i+2) {//for循环获取到每个符合条件的字符串,i=i+2将相邻的冒号和分号配对
NSRange range=[[rangeArr objectAtIndex:i] rangeValue];
NSInteger location=range.location;
NSRange nextRange=[[rangeArr objectAtIndex:i+1] rangeValue];
NSInteger nextLocation=nextRange.location;
NSRange finalRange=NSMakeRange(range.location+1, nextLocation-location-1);
NSString* finalStr=[string substringWithRange:finalRange];
NSLog(@"%@",finalStr);//这是解析到的字符串
}
}