效率高?
CPU时间还是内存?还是两者?

解决方案 »

  1.   

    Regex的算法复杂度是固定的O(n),在完成了Regex到有限自动机的转换以后,判断一个字符串是否匹配所需的时间只和该字符串的长度有关,这个字符串里面的每个字符至多会被检查一次。
      String实现的IndexOf采用的是比较笨的办法,某些情况下它可能需要检查一个字符多次,比如匹配abac到ababac的时候。
      所以如果有大量的字符串需要检查,Regex应该要比IndexOf优化。如果有更多的匹配条件,那么Regex的优势就更明显。你的例子“Book”和/或 “Expert”但不包含“Result”,IndexOf要检查字符串3次,但是Regex仍然只要一次(但是“不包含”的Regex写起来不是很容易)。:)
      

  2.   

    我 觉得 好像 regex好像 要厉害点
      

  3.   

    如果是简单的字符串查询正则表达式的速度并不快,我以前做过一个150K的字符串中搜索的例子,结果正则表达式,比Instr()慢.