从 NSString 中删除 HTML 但保留数学符号
Remove HTML from NSString but keep maths symbols
我需要从 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;
但是这个方法导致:
Dogs: For dogs
第一个 HTML 标签被正确剥离,但 <10KGs 被假定为 HTML 标签的开头,p> 结束就是它,因此删除了整个部分。
当 < 用于内容而非标签时如何处理?
将您的代码更改为,
NSRange r;
NSString *s = [[self copy] autorelease];
while ((r = [s rangeOfString:@"<[^<>]+>" options:NSRegularExpressionSearch]).location != NSNotFound)
s = [s stringByReplacingCharactersInRange:r withString:@""];
return s;
这将去除上例中的段落标签。 [^<>]+
匹配任何字符但不匹配 <
或 >
一次或多次。
我需要从 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;
但是这个方法导致:
Dogs: For dogs
第一个 HTML 标签被正确剥离,但 <10KGs 被假定为 HTML 标签的开头,p> 结束就是它,因此删除了整个部分。
当 < 用于内容而非标签时如何处理?
将您的代码更改为,
NSRange r;
NSString *s = [[self copy] autorelease];
while ((r = [s rangeOfString:@"<[^<>]+>" options:NSRegularExpressionSearch]).location != NSNotFound)
s = [s stringByReplacingCharactersInRange:r withString:@""];
return s;
这将去除上例中的段落标签。 [^<>]+
匹配任何字符但不匹配 <
或 >
一次或多次。