PCRE/PHP における Unicode 文字のマッチング: 改訂された理解
柔軟な名前検証ツールを開発する試みとして、PHP パターンがUnicode 文字、アポストロフィ、ハイフン、およびスペース:
$namePattern = "/^([\p{L}'\- ])+$/";
ただし、このパターンでは、Ă や 张などの非 ASCII 文字が発生した場合に問題が発生します。これを修正するには、次の洞察を考慮する必要があります:
1. Unicode 修飾子: 主な問題は、PCRE/PHP で Unicode サポートを有効にするために不可欠な u 修飾子が存在しないことです。この修飾子がないと、Unicode 文字プロパティは使用できなくなります。
2.修正されたパターン: u 修飾子を含む修正されたパターンは次のとおりです:
$namePattern = '/^[-\' \p{L}]+$/u';
これらの変更を組み込むことにより、パターンは Unicode 文字と効果的に一致し、より広範囲の文字との互換性が確保されます。入力。
以上が私の PHP 正規表現が Unicode 文字と一致しないのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。