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

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

Patricia Arquette
リリース: 2024-12-18 17:26:09
オリジナル
492 人が閲覧しました

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 サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート