我有html代码(NSString)的html页面,如下所示:
<html>
<p>
textA
</p>
<p>
textB
</p>
</html>
<a>
textC
</a>
我希望在标签之间获取文本
并制作另一个NSString。 此代码的预期结果是:
textAtextB
非常感谢。
答案 0 :(得分:1)
我不得不替换
[a]text[/a]
与
<a href="text">text</a>
这就是我修复它的方法:
NSString *xml = @"[a]text[/a][a]awesome[/a]"
NSString *pattern = @"\\[a\\](.*?)\\[\\/a\\]";
NSRegularExpression *regex = [NSRegularExpression
regularExpressionWithPattern:pattern
options:NSRegularExpressionCaseInsensitive
error:nil];
for( NSTextCheckingResult *textCheckingResult in [regex matchesInString:xml options:0 range:NSMakeRange(0, xml.length)] )
{
NSRange matchRange = [textCheckingResult rangeAtIndex:1];
NSString *match = [xml substringWithRange:matchRange];
htmlString = [htmlString stringByReplacingOccurrencesOfString:[NSString stringWithFormat:@"[a]%@[/a]",match] withString:[NSString stringWithFormat:@"<a href=\"%@\">%@</a>",match,match] ];
NSLog(@"Found string '%@'", match);
}
这将输出:
<a href="text">text</a>
<a href="awesome">awesome</a>
答案 1 :(得分:0)
只需搜索&lt;签名,然后为下一个&gt;签名,并删除该部分。重复,直到你没有留下这些标志。 替换正则表达式&lt; *&gt;什么都没有。
答案 2 :(得分:0)
将RegexKitLite框架添加到您的项目中。
将标记-licucore
添加到项目设置的Other Linker Flags
中
在您的课程中添加#import "RegexKitLite.h"
然后使用此代码段消除所有代码:
NSString *tags = @"<[^>]*>";
NSString *htmlString=@"<html><p>textA</p><p>textB</p></html>";;
NSString *stringWithoutTags = [htmlString stringByReplacingOccurrencesOfRegex:tags withString:@""];
NSLog(@"%@",stringWithoutTags);
//output: textAtextB
希望这有帮助。