場合によっては、PHPのpreg_match
に3276文字の制限があるようです。PHP preg_match length 3276 limit
すなわち
^(.|\s){0,3276}$
作品が、^(.|\s){0,3277}$
ません。
/^(.){0,3277}$/
のように、常に適用されないようです。
PHPのマニュアルやバグトラッカーのどこにも記載されていません。 3276という数字はちょっと奇妙な境界のようですが、私が考えることができるのは、符号付き16ビット整数の限界である32767の約1/10だと思います。
preg_last_error()
0を返します。
私はhttp://www.phpliveregex.com/上の問題だけでなく、私のローカルシステムとWebサーバを再現しました。
編集:警告:preg_match():コンパイルに失敗しました:正規表現がコードからオフセット16で大きすぎるため、PHP preg_match_all limitと同じ問題があるようです。
しかし、正規表現そのものはそれほど大きくありません...繰り返しすぎているグループを繰り返すと、PHPは何らかの拡張をしますか?
preg_matchは多くの要素を持つ配列を返すので、大きな配列を使用できるようにする必要があります。それが変わるならば。 –
'preg_last_error()'をチェックしましたか? –
はあなたのエラー報告ですか?あまりにも多くのメモリを使用すると、何らかのエラーが発生するはずです – x4rf41