「\uXXXX」を含む式を含む正規表現データベースを使用しています。これはもちろん、PHPPCREを壊します。
では、2つの部分からなる質問ですが、PCREにこれらのシーケンスを受け入れるように指示する方法はありますか?
そして、私はこの問題を回避しました。幸いなことに、それは1つのシーケンスだけでした。
$ regx = str_ireplace('\ u00a7'、'\ xa7'、$ regx);
しかし、私がやろうとしていたとき:
$ regx = preg_replace( "/ \\ u(\ w +)/ i"、 "\ x $ 1"、$ regx);
私はまだ得ていた-
警告:preg_replace()[function.preg-replace]:コンパイルに失敗しました:PCREはオフセット1で\ L、\ l、\ N {name}、\ U、または\uをサポートしていません
そして、単に\\ uではなく、\ u => \\\\ uを二重にエスケープする必要がありました。なぜそれが/より良い方法があるのでしょうか?注:この投稿に正しい文字列を取り込むには、実際には同じことを行う必要がありました。
更新:サーバーで5.3.3を実行