- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
如何从 NSString 中删除 html 标签,但保留任何 <Text in angle brackets>
?
赞<p>123 <Hello> abc</p>
-> 123 <Hello> abc
我尝试了各种正则表达式、扫描器和 XML 解析器解决方案,但它们删除了 <Text in angle brackets>
以及标签。
唯一适合我的解决方案是使用带选项的 NSAttributedString
NSAttributedString *str = [[NSAttributedString alloc] initWithData:utf8Data
options:@{NSDocumentTypeDocumentAttribute: NSHTMLTextDocumentType,
NSCharacterEncodingDocumentAttribute: @(NSUTF8StringEncoding)}
documentAttributes:nil
error:nil];
NSString *result = [str string];
但是这种方法使用了 WebKit 并且为我的任务消耗了太多内存。
那么,我如何从 NSString 中去除标签,同时保留 <Text in angle brackets>
不使用任何类型的 WebKit/UIWebView 等等?
最佳答案
我问了一个similar question前阵子,可能有些答案可以帮到你。如果您确实需要完整的 HTML 解析器并且只想去除 HTML 标签,NSString
类别可能会有用(这是 mwaterfal 修改的类别):
- (NSString *)stringByStrippingTags {
// Find first & and short-cut if we can
NSUInteger ampIndex = [self rangeOfString:@"<" options:NSLiteralSearch].location;
if (ampIndex == NSNotFound) {
return [NSString stringWithString:self]; // return copy of string as no tags found
}
// Scan and find all tags
NSScanner *scanner = [NSScanner scannerWithString:self];
[scanner setCharactersToBeSkipped:nil];
NSMutableSet *tags = [[NSMutableSet alloc] init];
NSString *tag;
do {
// Scan up to <
tag = nil;
[scanner scanUpToString:@"<" intoString:NULL];
[scanner scanUpToString:@">" intoString:&tag];
if (tag) {
NSString *t = [[NSString alloc] initWithFormat:@"%@>", tag];
[tags addObject:t];
}
} while (![scanner isAtEnd]);
NSMutableString *result = [[NSMutableString alloc] initWithString:self];
NSString *finalString;
NSString *replacement;
for (NSString *t in tags) {
replacement = @" ";
if ([t isEqualToString:@"<a>"] ||
[t isEqualToString:@"</a>"] ||
[t isEqualToString:@"<span>"] ||
[t isEqualToString:@"</span>"] ||
[t isEqualToString:@"<strong>"] ||
[t isEqualToString:@"</strong>"] ||
[t isEqualToString:@"<em>"] ||
[t isEqualToString:@"</em>"]) {
replacement = @"";
}
[result replaceOccurrencesOfString:t
withString:replacement
options:NSLiteralSearch
range:NSMakeRange(0, result.length)];
}
// Remove multi-spaces and line breaks
return = [result stringByRemovingNewLinesAndWhitespace];
}
关于html - NSString 移除 html 标签,保留 <Text in angle brackets>,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30379279/
我正在将我的项目从 Angular 7 迁移到 10。当我尝试编译项目时,我已将其导入为 import { AgmJsMarkerClustererModule } from '@agm/js-mar
我正在将我的项目从 Angular 7 迁移到 10。当我尝试编译项目时,我已将其导入为 import { AgmJsMarkerClustererModule } from '@agm/js-mar
当我们单击 ul 中的列表项下拉列表时,我必须将 fa-angle-left 更改为 fa-angle-down。请引用下面的代码。 Section 1 Secti
我有来自风向标的风向数据,数据以 0 到 359 度表示。 我想将其转换为具有 16 个不同方向的文本格式(罗盘玫瑰)。 基本上我想知道是否有一种快速灵活的方法可以将角度读数缩放到 16 字符串数组以
我注意到在单元格的右下角有一个小直角。 我的理解是这个小“直角”意味着列范围的结束。 我很确定我没有使用正确的 Excel 措辞。 如何删除直角指示器或在最后一个单元格之后输入更多数据,以便电子表格知
我正在使用 DevExpress v.10.2,并希望在 XtraReport 上显示带有 Angle 的 XRLabel。如果我正在使用 Designer,它工作正常。但现在我想在运行时执行此操作,
我想知道给定角度在哪个轴四分之一处以最有效的方式 第 1 季度:Alpha > 0 && Alpha 90 && Alpha 180 && Alpha 270 && Alpha 0 && an
我想使用 ROI 将图像中找到的多边形复制到新图像中。我希望这个多边形完全适合新图像。到目前为止,我使用了 ROI,但我注意到角度没有被考虑在内,一旦我旋转我希望检测的物体,这就会给我带来不好的结果。
从 MinAreaRect 的函数来看,它是否返回 0-360 度范围内的角度?我不确定,因为我有一个方向为 90 度左右的物体,但我一直得到 -1 或 -15 度。这可能是 openCV 错误吗?
让我首先说明我的数学很糟糕。 我正在尝试重新定位和旋转一个矩形。但是,我需要从一个不是 0,0 的点旋转矩形,而是根据它的坐标移动了多远。我确定这没有多大意义,所以我做了一些草图来帮助解释我需要什么。
我正在尝试使用 JavaScript 来旋转对象。当它改变方向时,我只需添加或减去 Angle 值即可。 Angle += 0.1; 或 Angle -= 0.1; 我的问题是,当对象完成完整旋转时,
为什么转义尖括号 > 会表现出类似前瞻的行为? 需要说明的是,我知道尖括号不需要转义。 问题是,如何解释模式以产生显示的匹配项 ## match bracket, with or without un
我读取了一个 csv 文件并将其转换为包含 2 个文本列的 pandas 数据框。在一列中,我有多行这种形式: suggested- action>YesNo " option1 option2 o
我做了很多研究,但真的找不到我应该如何使用四元数来执行以下操作: 我有源方向和目标方向,我试图找到从一个方向到另一个方向的特定角度(例如 10 度)的四元数。 我想了解四元数,也想避免万向节锁定,所以
这个问题与另一个 stackoverflow 讨论有关 distance between long&lat points 这是得票最多的答案中的代码: /* * Calculate distance
我想了解更多关于KeyPoints的知识,谁能告诉我什么是 关键点::角度 在 OpenCV 文档中提到角度是计算关键点的方向(如果不适用则为 -1)。我无法想象那是什么。那么谁能告诉我这是什么意思或
考虑以下示例 Simulink (Download example)系统: 输入是一个幅度和一个不断增加的角度,它将返回两个正弦,如预期的实部和虚部: 从实部和虚部计算幅度是没有问题的。获取域中的角度
我在通过 OCR 处理发票的程序中发现了一个有趣的问题。 在一步中,我对图像进行了歪斜校正,现在我有了一个特定的用例。 原始文件(解密): 旋转文件(解密): 我本以为旋转大约是 -15 度,但程序告
如果你尝试下面的代码段 import numpy as np import numpy.ma as ma a = np.random.random(100) + 1j*np.random.random
我正在尝试使用批处理脚本动态创建一个小的 XML 文件,但在编写以尖括号开头和结尾的行时遇到问题。 1) 如果我做类似的事情: set foo=^ echo %foo% > test.txt 这导致
我是一名优秀的程序员,十分优秀!