我正在处理几 GB 的文本,我的脚本在 preg_replace() 上死掉了。经过一些研究,我提取了文本中有问题的部分,即泄漏出现的地方。
preg_replace('/\b\p{L}{0,2}\b/u', '', "\x65\xe2\xba\xb7\x69\xe3\xb1\xae");
PHP致命错误:允许的内存大小为134217728字节已用尽(试图分配251105872字节)
我正在尝试删除简短(最多 2 个字符)的单词。我还发现,如果我将正则表达式更改为:
preg_replace('/\b\p{L}{1,2}\b/u', '', "\x65\xe2\xba\xb7\x69\xe3\xb1\xae");
它工作正常。
有人可以解释发生了什么吗?第一个示例适用于 99% 的文本。