【发布时间】:2015-01-23 00:20:09
【问题描述】:
我有一个大的源代码文件,我需要从中解析出一些特定的文本。我想尽快完成它。在 Swift 中最快的方法是什么?这些都是我能想到的选项?
使用第三方字符串函数库 - 我已经尝试过了。它工作得很好,但我想这比一般其他较低级别的方法要慢得多,除非有一些专门针对 Swift 的特别快的方法。
使用第三方 HTML 解析器。我已经研究了一些,但我不确定它们是否适合我的需要。在我继续之前,我只想知道这些通常是否更快,是否有任何值得注意的快速的,以及我是否能够调整它们以从源代码中获得我想要的具体内容。
使用字符串或 NSString。据我了解,使用 String 与 NSString 在速度上应该没有区别。我对这种方法很满意,而且它比其他一些方法低,所以我应该期待相当快的性能吗?
使用正则表达式。有人告诉我,由于这些级别较低,因此理想情况下它们应该是最快的。我以前使用过正则表达式,但在 ios 中没有。用 NSRegularExpression 做字符串解析容易吗,速度快吗?
谢谢!
【问题讨论】:
-
blog.codinghorror.com/parsing-html-the-cthulhu-way 与您的最后一点非常相关,这很痛苦。不要使用正则表达式
-
为了扩展 iismathwizard 的有效点,不应该用正则表达式解析 html 的原因是带有 html 的正则表达式太复杂了,并且充满了麻烦的特殊字符。
-
如果您将此文本加载到某种 WebView 中,您最好只使用 JavaScript[Core] 让 WebKit 为您处理。如果没有,愿众神怜悯你的灵魂。
-
如果您刚刚开始使用 Swift,我建议您查看不只针对一种操作环境的其他语言。现有的脚本语言(如 Ruby)具有出色的代码库,可以完成您想要的工作。 Nokogiri 可以完美地满足您的需求,并且易于使用。使用 Ruby 进行移动开发即将到来。 - 对于 iOS,请查看 RubyMotion - 对于 Android,请查看 Ruboto
标签: regex swift html-parsing