我有一个长字符串,我需要判断其中是否出现了一个短字符串。听起来很简单,就是,使用 strpos
我可以执行
strpos($longstr, $shortstr);
这样可以完成工作,但我确实知道一些事实:
- 短字符串总是在新行开始
- 短字符串的长度始终为 10 个字符(多字节)
- 短字符串将始终以字符“чь”开头
- 短字符串总是在第 10 个字符后换行结束
- 短字符串只能出现一次,再出现无意义,忽略
考虑到上述条件,在新行上除 0 以外的任何位置搜索有问题的字符串是没有意义的,但是,如果我不通过,我怎么知道新行在哪里整个长字符串。
与 strpos
相比,在完成工作和性能方面有什么可以改进的地方吗?
最佳答案
你可以 explode() ( http://php.net/explode ) 你的 $longstr 在 "\n"字符上,并迭代结果......但老实说,因为你必须在 PHP 中这样做,我很漂亮确保直接调用 strpos() 会更快。
如果你能想出一个正则表达式,那可能会起作用 - 但同样,我认为这会比 strpos() 慢。
关于php - 给定一组常数因子,在字符串中搜索字符串的最快方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29370257/