在 Objective C 中是否可以同时在 NSString 中搜索多个不同的字符串?
例如,我想在一个很长的字符串中搜索所有出现的字符串“good”、“great”、“awesome”、“incredible”、“fantastic”和“brilliant”。
我的第一个想法是使用NSString:rangeOfString
: 并循环多次(每个字符串一次),但令我震惊的是,使用更长的字符串集,这可能会变得低效且缓慢。
是否有一种内置的方法来搜索这样的多个字符串,或者我应该创建自己的方法?
编辑:结果出来了!
在找到一些时间进行基准测试后,我发现 RegEx 方法确实比循环rangeInString
方法慢(慢 2 倍以上)。数字,供您欣赏,如下:
包含150,000 个单词(~1103,500 个字符)和20 个 match-words的列表,存在 5412 个匹配项
NSString:rangeInString 搜索 = 231.077ms
正则表达式搜索 = 530.113ms