我需要从NSString中删除所有HTML格式,但我需要保留任何< (小于)与字符串内容相关的符号。
例如:
<p>Dogs: For dogs <10KGs use 1:1000 solution (1000 µg/ml) diluted to 5-10 ml.</p>
我需要阅读:
Dogs: For dogs <10KGs use 1:1000 solution (1000 µg/ml) diluted to 5-10 ml.
到目前为止,常见的方法是使用以下内容:
NSRange r;
NSString *s = [[self copy] autorelease];
while ((r = [s rangeOfString:@"<[^>]+>" options:NSRegularExpressionSearch]).location != NSNotFound)
s = [s stringByReplacingCharactersInRange:r withString:@""];
return s;
但是这种方法导致:
狗:狗:
第一个HTML标记被正确剥离但是&lt; 10KG被假定为HTML标记的开头,其中p&gt;关闭是它,所以删除整个部分。
我该如何处理&lt;什么时候用于内容而不是标签?
答案 0 :(得分:1)
将您的代码更改为
NSRange r;
NSString *s = [[self copy] autorelease];
while ((r = [s rangeOfString:@"<[^<>]+>" options:NSRegularExpressionSearch]).location != NSNotFound)
s = [s stringByReplacingCharactersInRange:r withString:@""];
return s;
这将剥离上例中的段落标记。 [^<>]+
与<
或>
的任何字符匹配一次或多次。