php 截取字符串有关问题
程序员文章站
2022-06-07 09:33:27
...
php 截取字符串问题
在编程中经常与遇到将一个字符串根据某个字符切分的问题。
一般我们会用explode将字符串切分成一个数组,然后进行进一步的操作。
但假如有一个需求是要截取一个字符串中某两个相邻的分割字符中间的字串,那么用explode就显得有点浪费了。
毕竟很多其他的被截取出来的字串用不到阿。浪费了空间也浪费了计算。
今天发现了一个方法,就是用preg_match。(如有雷同,实属缘分)
具体方法是这样的:
function getsubstr($str,$dec,$index){//获取str中第index个分隔符dec到第index+1个分隔符之间的字串 $index+=1; $a = '/^([^'.$dec.']*'.$dec.'){'.$index.'}/'; $match = Array(); preg_match($a,$str,$match); if(isset($match[1])) return rtrim($match[1]); return ''; }?
具体原理就不解释了,大家都看的明白的。
?
此外另外的两种方法分别是explode截取出字符串数组,然后取值;以及循环遍历字符串,找到对应的两个分隔符的位置然后截取字符串。
?
经过测试得到:
?
10w行记录处理时间:
??? 本文方法?? : 1.3521399497986
??? explode ?? : 1.4456930160522
??? 循环遍历?? : 1.4808049201965
?
测试结果显示,10W行记录处理时间最多相差0.1秒。
?
不知还有什么其他方法?
上一篇: PHP实现linux命令tail
下一篇: 一个奇葩的乱码有关问题
嗯,是的10w行都在一个文本文件中。
声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。
相关文章
相关视频
网友评论
文明上网理性发言,请遵守 新闻评论服务协议
我要评论专题推荐
全栈 170W+
主讲:Peter-Zhu 轻松幽默、简短易学,非常适合PHP学习入门
入门 80W+
主讲:灭绝师太 由浅入深、明快简洁,非常适合前端学习入门
实战 120W+
主讲:西门大官人 思路清晰、严谨规范,适合有一定web编程基础学习
认证0级讲师
:公益在线php培训,帮助PHP学习者快速成长!
Copyright 2014-2021 https://www.php.cn/ All Rights Reserved | 苏ICP备2020058653号-1关于我们免责申明赞助与捐赠广告合作