ios中正则表达式的使用
在ios中主要使用的是NSRegularExpression类、NSTextCheckingResult,
具体代码如下:
NSError *error = NULL; NSString *patternIFrame; NSRegularExpression *regex; int offset = 0; //parse <iframe> patternIFrame = @"\<iframe.*?\<\/iframe\>"; // 配置regex对象 regex = [NSRegularExpression regularExpressionWithPattern:patternIFrame options:NSRegularExpressionCaseInsensitive error:&error]; // 这里是用来从字符串中查询符合规则的字符串,然后返回结果 NSArray *matchResult = [regex matchesInString:text options:NSMatchingReportCompletion range:NSMakeRange(0, text.length)]; for(NSTextCheckingResult *result in matchResult){ @autoreleasepool { // NSLLog(@"%@", result); if(result.range.location-offset > 0){ NSString *str = [text substringWithRange:NSMakeRange(offset, result.range.location-offset)]; NSLog("%@", str); } offset = result.range.location + result.range.length; } }
使用正则表达式可以很方便的操作一个字符串,根据一定的规则可以用来查找、替换。
在使用过程中,写pattern是最困难的一部分,ios中的pattern跟其他的规则又不一样的地方,具体规则参考:https://developer.apple.com/library/ios/documentation/Foundation/Reference/NSRegularExpression_Class/Reference/Reference.html
常用例子:
// 用来判断是否是来自主站的图片
NSString *imgPattern = @"^http://img1\.guokr\.com/thumbnail/[\\w-]{56}_(\\d*)x(\\d*)?\.(jpg|gif|png)";
// 截取iframe标签
patternIFrame = @"\<iframe.*?\<\/iframe\>";
// 从img标签中截取图片地址
patternIFrame = @"src\=(.*?\.\")"
相关推荐
wangzhaotongalex 2020-10-20
wyq 2020-11-11
TLROJE 2020-10-26
风雨断肠人 2020-10-13
duanqingfeng 2020-09-29
rechanel 2020-11-16
cshanzhizi 2020-10-16
luofuIT成长记录 2020-09-22
phphub 2020-09-10
taomengxing 2020-09-07
MaggieRose 2020-08-19
flyingssky 2020-08-18
山水沐光 2020-08-18
jyj00 2020-08-15
AHuqihua 2020-08-09
山水沐光 2020-08-03