解决preg_match匹配过多字符长度的限制的思路分析
所属分类:
网络编程 / 正则表达式
阅读数:
1347
收藏 0赞 0分享
但是官方的文档里面没有说明这一点。
于是开始测试:将要匹配的字串不断缩短,直到缩为原来1/5的时候可以正常匹配了,所以更加确定了。
到google里一搜,终于找到了解决方案:在php.ini中加入(随便放到哪里,我是直接放第一行的)
pcre.backtrack_limit=-1
再次使用preg_match函数测试一下,大概1300多行上万个字符的字符串也能够匹配了。
项目中,用preg_match正则提取目标内容,死活有问题,代码测得死去活来。
后来发现“pcre.backtrack_limit ”的值默认只设了100000。
解决办法:ini_set(‘pcre.backtrack_limit', 999999999);
注:这个参数在php 5.2.0版本之后可用。
另外说说关于:pcre.recursion_limit
pcre.recursion_limit是PCRE的递归限制,这个项如果设很大的值,会消耗所有进程的可用堆栈,最后导致PHP崩溃。
也可以通过修改配置来限制:ini_set(‘pcre.recursion_limit', 99999);
实际项目应用中,最好也对内存进行限定设置:ini_set(‘memory_limit', '64M'); , 这样就比较稳妥妥嘎。
正则表达式验证IPV4地址功能实例分析
这篇文章主要介绍了正则表达式验证IPV4地址功能,结合实例形式分析了IPV4地址验证的原理及具体实现技巧,需要的朋友可以参考下
收藏 0赞 0分享
JS 密码强度校验的正则表达式(简单且好用)
最近在做一个通行证的项目,在项目中有这样的需求,注册模块中输入密码需要显示密码强度,今天小编给大家分享JS 密码强度校验的正则表达式,简单好用,需要的朋友参考下
收藏 0赞 0分享
正则表达式(简单易懂篇)
正则表达式是一种可以用于模式匹配和替换的强大工具。这篇文章主要介绍了正则表达式(简单易懂篇),需要的朋友参考下
收藏 0赞 0分享
正则表达式实现匹配连续数字的方法
我这两天刚刚学正则表达式。我觉的正则对连续的字符匹配很简单,但是对连续的一段数字匹配就不是很好。正好最近有朋友问了匹配连续数字的正则,就帮忙写了一下,算是当作温习一下吧。下面这篇文章就主要介绍了正则表达式实现匹配连续数字的方法。
收藏 0赞 0分享
正则表达式简介及在C++11中的简单使用教程
正则表达式(regular expression)是计算机科学中的一个概念,又称规则表达式,通常简写为regex、regexp、RE、regexps、regexes、regexen。接下来通过本文给大家介绍正则表达式简介及在C++11中的简单使用教程,一起通过本文学习吧
收藏 0赞 0分享
正则表达式实现最小匹配功能的方法
这篇文章主要介绍了正则表达式实现最小匹配功能的方法,结合具体实例形式分析了正则表达式最小匹配功能的原理与实现技巧,需要的朋友可以参考下
收藏 0赞 0分享
查看更多