文字列が有効なPHP正規表現であるかどうかを確認する正規表現はありますか?有効なregexpパターンのPHP正規表現
私のアプリケーションのバックオフィスでは、管理者がデータ型を定義し、パターンを正規表現として定義できます。たとえば/^[A-Z][a-zA-Z]+[a-z]$/
とフロントオフィスでは、このパターンを使用してユーザー入力を検証します。 私のコードでは、私はPHP preg_match
機能
preg_match($pattern, $user_entries);
を使用する最初の引数は、どのように私は$パターンが私のバックオフィスでのユーザーentrie以来の有効な正規表現であることを確認することができ、有効なPHPの正規表現でなければなりません。
注意点を検証するために、独自の
preg_match
、またはsubstr
のいくつかの組み合わせを使用して操作を行う必要があり、ルールを識別する任意のregexes:adminsだけがregexesを定義でき、あなたの管理者がregexesの周りに自分の道を知っているなら、それはうまくいくはずです。しかし、正規表現とデータの「正しい」組み合わせが壊滅的なバックトラッキングを引き起こし、基本的にアプリケーションをブロックすることに注意してください。たとえば、正規表現 '。*。*。*。*。*。*。* ^'は、数文字より長い文字列(正規表現に適用される場合は590.000回を超える文字列)例えば、「1111111111111111」)。 –'/ e'修飾子を使用すると、regexが' preg_replace'とともに使用された場合、置換はPHPコードとして評価されます。 – ThiefMaster