ホームページ >バックエンド開発 >PHPチュートリアル >私の PHP 正規表現が Unicode 文字と一致しないのはなぜですか?

私の PHP 正規表現が Unicode 文字と一致しないのはなぜですか?

Patricia Arquette
Patricia Arquetteオリジナル
2024-12-18 17:26:09495ブラウズ

Why Doesn't My PHP Regex Match Unicode Characters?

PCRE/PHP での Unicode 文字文字マッチング

PHP で名前を検証するために、次の正規表現を使用してパターンが実装されます。

/^([\p{L}'\- ])+$/

ただし、検証では Ă などの Unicode 文字と一致しません。

分析

この問題は、正規表現内の「u」修飾子が省略されていることが原因で発生します。この修飾子は、Unicode 文字のマッチングを有効にし、ASCII のみのパターンとの混同を避けるために必要です。

パターンを変更して「u」修飾子を含めることにより、

/^[-\' \p{L}]+$/u

正規表現が正しくできるようになりました。 Unicode 文字、アポストロフィ、ハイフン、スペースと一致します。

以上が私の PHP 正規表現が Unicode 文字と一致しないのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。