我从我的Web服务(我需要在UILabel
中设置)获得一个字符串,该字符串具有WYSIWYG编辑器标记(不是 HTML ),例如:
[size=3][b]This is an awesome post![/b][/size]
我有NSString
删除HTML的方法,但我不确定如何修改它以搜索这些开始和结束标记。
// How can I modify this?
+ (NSString *)stripHTML:(NSString *)html {
NSRange r;
NSString *s = [html copy];
while ((r = [s rangeOfString:@"<[^>]+>" options:NSRegularExpressionSearch]).location != NSNotFound)
s = [s stringByReplacingCharactersInRange:r withString:@""];
return s;
}
有人可以对我可以使用的正则表达式有所了解吗?
答案 0 :(得分:1)
您可以尝试以下代码:
NSError *error = nil;
NSString *myText = @"[size=3][b]This is an awesome post![/b][/size]";
NSRegularExpression *regex = [NSRegularExpression regularExpressionWithPattern:@"\\[\\/?.*?\\]" options:NSRegularExpressionDotMatchesLineSeparators error:&error];
NSString *modifiedString = [regex stringByReplacingMatchesInString:myText options:0 range:NSMakeRange(0, [myText length]) withTemplate:@""];
NSLog(@"%@", modifiedString);
将其包装成单独的方法。
This is an awesome post!
答案 1 :(得分:0)
对于 HTML文字,一个解决方案可能不是100%但可以有效:
NSString *strText = @"[size=3][b]This is an awesome post![/b][/size]";
strText = [strText stringByReplacingOccurrencesOfString:@"[" withString:@"<"];
strText = [strText stringByReplacingOccurrencesOfString:@"]" withString:@">"];
NSLog(@"%@",strText);
在UIWebView中使用时,它如下所示: