在给定一组常量因子的情况下,在字符串中搜索字符串的最快方法

时间:2015-03-31 13:53:55

标签: php string

我有一个长字符串,我需要确定是否出现短字符串。这听起来非常简单,使用strpos我可以执行

strpos($longstr, $shortstr);

哪个可以完成工作,但是我确实知道一些事实:

  • 短字符串将始终以新行开头
  • 短字符串总是10个字符长(多字节)
  • 短字符串将始终以字符“чь”
  • 开头
  • 短字符串将始终以第10个字符后面的新行结束
  • 短字符串只能出现一次,进一步出现无意义且无视

考虑到上述条件,在新行上的0以外的任何位置搜索有问题的字符串是没有意义的,但是,如果不通过,我怎么知道新行的位置整条长串。

strpos相比,在完成工作方面是否有任何可以改进的性能?

1 个答案:

答案 0 :(得分:3)

你可以在" \ n"上爆炸()http://php.net/explode你的$ longstr字符,并迭代结果......但老实说,既然你必须在PHP中这样做,我很确定直接的strpos()调用会更快。

如果你能想出一个正则表达式,那可能会有效 - 但是我认为它会比strpos()慢。