PHP的preg_replace()导致群组捕获导致的分段错误11

时间:2017-12-18 10:30:30

标签: php regex preg-replace pcre

preg_replace('/(\s|\-|\||\.|\,){2,}/', ' ', $contents)

在解析某些字符串时导致分段错误可能是由于耗尽了php.ini中定义的PCRE递归限制

我修改了regexp以使用非捕获组,但是,对于相同的内容,我仍然会收到Segmentation Fault 11。 修改后的RegExp:

preg_replace('/(?:\s|\-|\||\.|\,){2,}/', ' ', $contents)

最后,我将RegExp更改为(不使用任何分组):

preg_replace('/[\s-|.,]{2,}/', ' ', $contents)

这不会导致分段错误。

我从以下观察中得到以下疑问:

  1. 最终的正则表达式是否取代了最初的内容?
  2. 为什么使用非捕获组时无法解决分段错误错误?

0 个答案:

没有答案