我有一个长字符串,其中我需要确定是否出现短字符串。这听起来很简单,事实上,使用strpos
我可以执行
strpos($longstr, $shortstr);
这将完成工作,然而,有一些事实我可以肯定:
- 短字符串总是从新行开始
- 短字符串将始终为10个字符长(多字节)
- 短字符串将始终以字符"ча"开头
- 短字符串总是以第10个字符后的新行结束
- 短字符串只能出现一次,以后再出现都没有意义,可以忽略
考虑到以上条件,在新行上0以外的任何位置搜索有问题的字符串都没有意义,但是,如果我不遍历整个长字符串,我怎么能知道新行在哪里。
与strpos
相比,在完成工作的性能方面,有什么可以改进的地方吗?
您可以explode()(http://php.net/explode)您在"''n"字符上的$longstr,并迭代结果。。。但老实说,由于您必须在PHP中执行此操作,我确信直接调用strpos()会更快。
如果你能想出一个正则表达式,这可能会奏效——但我认为这会比strpos()慢。