PCRE/PHP での Unicode 文字文字マッチング
PHP で名前を検証するために、次の正規表現を使用してパターンが実装されます。
/^([\p{L}'\- ])+$/
ただし、検証では Ă などの Unicode 文字と一致しません。
分析
この問題は、正規表現内の「u」修飾子が省略されていることが原因で発生します。この修飾子は、Unicode 文字のマッチングを有効にし、ASCII のみのパターンとの混同を避けるために必要です。
パターンを変更して「u」修飾子を含めることにより、
/^[-\' \p{L}]+$/u
正規表現が正しくできるようになりました。 Unicode 文字、アポストロフィ、ハイフン、スペースと一致します。
以上が私の PHP 正規表現が Unicode 文字と一致しないのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。