从 NSString 中过滤掉子字符串 . . .也许使用正则表达式



这是我的问题:

我正在尝试从 NSString 对象中过滤掉 html 标签。

对此的大多数修复只是删除了<和>之间的所有内容,以及这些字符本身。我正在尝试找出一种方法来删除"<. . .>"子字符串,前提是它不包含空格或换行符。

我这样做的方式看起来像这样

while ([source rangeOfString@"someRegEx" options:NSRegularExpressionSearch].location != NSNotFound) {
//find the range of the substring
//check for newlines/whitespace characters
//replace occurrences of the string with "" if it doesn't have them
}

首先,这似乎是一个好方法吗?其次,我在弄清楚正则表达式会是什么样子时遇到了很多问题......有没有人知道它可能是什么样子?

这似乎是一个很好的方法,只要你正在寻找的标签真的永远不会包含空格,正如m.buettner指出的那样。正则表达式看起来像这样:

<[^s]*?>

[^s]是一个否定字符类,它匹配除空格字符以外的任何字符。?使*变得懒惰而不是贪婪。所以这个正则表达式在英语中的意思是"匹配一个'<',然后是尽可能少的非空格字符,然后是'>'。

这是一个有用的页面。

也许你应该考虑使用一个 NSXMLParser ,这里描述。

您可以获得一组非常丰富的委托方法来从字符串中提取您喜欢的任何内容。

最新更新