2 つの異なる OS で 2 つの異なるバージョンの php を使用しています。
1 つは、Windows (wamp) で実行されている 5.2.9 です。
1 つは、CentOS 5 (ランプ) で実行されている 5.2.6 です。
グループ名を含む正規表現は、Windows では機能しますが、CentOS では機能しません。
そのような例は/^field_(?<myname>.+)/
これはOSの問題ですか?それとも、PHP のビルド方法に関係するものですか?
ありがとう、
2 つの異なる OS で 2 つの異なるバージョンの php を使用しています。
1 つは、Windows (wamp) で実行されている 5.2.9 です。
1 つは、CentOS 5 (ランプ) で実行されている 5.2.6 です。
グループ名を含む正規表現は、Windows では機能しますが、CentOS では機能しません。
そのような例は/^field_(?<myname>.+)/
これはOSの問題ですか?それとも、PHP のビルド方法に関係するものですか?
ありがとう、
PHP で利用可能なほとんどの正規表現関数は、libpcre に由来します。このライブラリは、いくつかのセキュリティ問題に対応して、数年間激動の歴史を持っています。これらの問題の修正により、セマンティクスが変更されます。デフォルトで PHP をビルドするときは、バンドルされている libpcre を使用します。それが変更されると、変更ログhttp://www.php.net/ChangeLog-5.phpに記録されます。ディストリビューションによっては、または自分でコンパイルした場合、php がそのバージョンのセマンティクスを持つ外部 libpcre を使用することがあります。
つまり、正規表現が最新バージョンで動作する場合、過去のバージョンで動作する傾向があり、逆は、私が指摘したように、真実ではありません。