可能是重复问题:
Regex.IsMatch vs string.Contains
哪个更快、更好,为什么?
两者之间的机制有何不同?
我需要从UserAgent中搜索一些值,大多数值可以在不使用通配符的情况下使用(例如,如果我想捕捉手机,我会搜索 iPhone
而不是 *iPhone*
通配符)。
可能是重复问题:
Regex.IsMatch vs string.Contains
哪个更快、更好,为什么?
两者之间的机制有何不同?
我需要从UserAgent中搜索一些值,大多数值可以在不使用通配符的情况下使用(例如,如果我想捕捉手机,我会搜索 iPhone
而不是 *iPhone*
通配符)。
什么更快?
试着测量。但这是一个错误的问题,请看下面的解释。
更可取的选择
如果我想匹配一个固定字符串,String.Contains
就刚好满足我的需求。如果我需要模式匹配,则String.Contains
就无用了。
比较它们的性能是无关紧要的,因为它们执行完全不同的任务。首先使用正确的工具,只有在性能成为问题时才使用分析工具来确定代码中需要优化的热点部分。