Ios 从中提取NSString的一部分,变量字符介于

Ios 从中提取NSString的一部分,变量字符介于,ios,objective-c,nsstring,substring,Ios,Objective C,Nsstring,Substring,我得到了一个类似于: NSString*s=@这里是一些文本 class1可以是任何类似class2、largetext或其他的东西 我想得到以下信息: NSString*wantedString=@这里有一些文本 我该怎么做 如果此html已加载到web视图中,请使用stringByEvaluatingJavaScriptFromString访问span标记的innerHTML stringByEvaluatingJavaScriptFromString可用于通过DOM文档对象模型访问html

我得到了一个类似于:

NSString*s=@这里是一些文本

class1可以是任何类似class2、largetext或其他的东西

我想得到以下信息:

NSString*wantedString=@这里有一些文本


我该怎么做

如果此html已加载到web视图中,请使用stringByEvaluatingJavaScriptFromString访问span标记的innerHTML


stringByEvaluatingJavaScriptFromString可用于通过DOM文档对象模型访问html的任何部分,例如标记的内容。

使用xml解析器是一个很好的解决方案,前提是开销值得

使用正则表达式:

NSString *s = @"<span class='class1'>here some text</span>";
NSString *pattern = @"<span class='[^']+'>([^<]+)";

NSRegularExpression *regex = [NSRegularExpression
                              regularExpressionWithPattern:pattern
                              options:NSRegularExpressionCaseInsensitive
                              error:nil];
NSTextCheckingResult *textCheckingResult = [regex firstMatchInString:s options:0 range:NSMakeRange(0, s.length)];

NSRange matchRange = [textCheckingResult rangeAtIndex:1];
NSString *match = [s substringWithRange:matchRange];
NSLog(@"Found string '%@'", match);
NSLog输出:

找到字符串“此处有一些文本”


似乎是iOS,不是iOS…你看过NSString的文档了吗?你找过了吗?关于从字符串中提取子字符串有很多现有的主题。另外,字符串来自哪里?如果是任意HTML,最好使用XML解析器。在有人建议使用正则表达式之前,我先把这个放在这里。这就像坐汽车到汽车站买票,然后坐公共汽车回家。既然你已经有了HTML,为什么还要麻烦地把它放在网络视图中,然后再提取呢?如果是任意HTML,简单的XML解析器应该可以,但除非OP提供更多详细信息,否则无法确定。HTML不再被提取,innerHTML是,即OP要求的标记内的内容。XML解析器需要3行以上的行数,那么它如何复杂?好吧,也许复杂不是正确的形容词。让我们说这是一个过度的杀伤力。使用XML将很容易成为一行代码,并避免产生完全不必要的完整UIWebViews我编辑了我的答案,以使那些不熟悉StringByEvaluatingJavaScriptFromStrings的人更容易理解。请记住,大多数HTML都不是有效的XML。这取决于所讨论的HTML。这意味着,如果您使用的是不会使用i的HTML类型,则标准XML解析器将阻塞通用HMTL。@rmaddy。EHTML!=5.HTML5,那么只有一个格式必须考虑使用,是有效的XML。