但是官方的文档里面没有说明这一点。
于是开始测试:将要匹配的字串不断缩短,直到缩为原来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'); , 这样就比较稳妥妥嘎。
解决preg_match匹配过多字符长度的限制的思路分析
2020-08-04 17:08正则之家 正则表达式
今天在写采集程序的时候,使用到了preg_match,但是有几个页面始终采集不下来。反复看了N遍的正则,没有发现有问题。于是开始怀疑preg_match是否对匹配的字符串有长度限制
延伸 · 阅读
- 2022-03-07URL @PathVariable 变量的匹配原理分析
- 2022-02-28一个关于JS正则匹配的踩坑记录
- 2022-02-22VS2012 未找到与约束ContractName匹配的导出
- 2022-02-21excel如何搜索关键字匹配全称?
- 2022-01-06C#正则表达式匹配与替换字符串功能示例
- 2022-01-03R语言 数据表匹配和拼接 merge函数的使用
- 正则表达式
JS正则表达式验证数字(非常全)
正则表达式,又称规则表达式,在项目中经常会用到正则表达式,今天小编抽空给大家分享js正则表达式验证数字的方法,感兴趣的朋友参考下吧...
- 正则表达式
JavaScript 正则表达式 验证整数、小数、实数、有效位小数最简单
JavaScript 正则表达式 验证整数、小数、实数、有效位小数最简单,输入完按回车后即可验证!(自认为最简单!)...
- 正则表达式
正则表达式概述 什么是正则表达式
正则表达式就是用某种模式去匹配一类字符串的公式,主要用来描述字符串匹配的工具...
- 正则表达式
常用正则表达式语法例句
本文主要分享一些常用正则表达式语法例句,具有一定的参考价值,有需要的朋友可以了解下...
- 正则表达式
解决preg_match匹配过多字符长度的限制的思路分析
今天在写采集程序的时候,使用到了preg_match,但是有几个页面始终采集不下来。反复看了N遍的正则,没有发现有问题。于是开始怀疑preg_match是否对匹配的...
- 正则表达式
正则表达式re.sub替换不完整的问题及完整解决方案
re.sub是个正则表达式方面的函数,用来实现通过正则表达式,实现比普通字符串的replace更加强大的替换功能。这篇文章主要介绍了正则表达式re.sub替换不完...
- 正则表达式
asp去除html标记与空格的正则
用asp实现的去除内容的html标记和空格的实现代码,正在学习正则表达式的朋友可以参考下...
- 正则表达式
js通过正则匹配没有内容的空标签
这篇文章主要介绍了js通过正则匹配没有内容的空标签,需要的朋友可以参考下...