NSScanner 扫描字符串

两个常用于扫描字符串的方法

  //'指针'只移动一个位置,判断当前所指的字符是否是目标字符@"x", 若是则存入result中,返回YES,否则NO
BOOL res = [scanner scanString:@"x" intoString:&result];
//'指针'从开头一直扫描到有首次出现目标字符@"x"为止,'指针'停留在目标@"x"之前, 将目标字符前面的全部内容存入result中 BOOL res1
= [scanner scanUpToString:@"x" intoString:&result];

例子:

1.  在iOS中使用HTML格式的字符串,去掉所有<>中的内容

NSString *str = @"我爱你<lalala>大发<大大发>《》<adsfad>asfd";

NSScanner *scanner = [NSScanner scannerWithString:str]; // 初始化一个NSScanner对象

NSString *text = @""; // 用来存储查询到的字符串

while (scanner.isAtEnd == NO) { // 判断是否扫描完毕

    [scanner scanUpToString:@"<" intoString:nil]; // 查找字符串中的@"<"子串,并将scanLocation停留在@"<"的首个字符的位置上

    [scanner scanUpToString:@">" intoString:&text]; // 查找字符串中的@">"子串,并截取@"<"到@">"的子串(不包括@">")

    // 将扫描到的<>中的内容全部替换成@""

    str = [str stringByReplacingOccurrencesOfString:[NSString stringWithFormat:@"%@>", text] withString:@""];

}

NSLog(@"%@", str);

  

2. 输出所有<>中的内容


NSString *str = @"我爱你<lal ala> 大发  <大大发>《》<adsfad>asfd";

NSScanner *scanner = [NSScanner scannerWithString:str]; // 初始化一个NSScanner对象

NSString *text = @""; // 用来存储查询到的字符串while (scanner.isAtEnd == NO) { // 判断是否扫描完毕

    [scanner scanUpToString:@"<" intoString:nil]; // 查找字符串中的@"<"子串,并将scanLocation停留在@"<"的首个字符的位置上

    [scanner scanString:@"<" intoString:nil];

    [scanner scanUpToString:@">" intoString:&text]; // 查找字符串中的@">"子串,并截取@"<"到@">"的子串(不包括@">")

    NSLog(@"%@", text);

}

参考: 

https://blog.csdn.net/qq_21649645/article/details/43971425

原文地址:https://www.cnblogs.com/daxueshan/p/10040464.html