文字列にUTF-8のエンコードで最低1つの大文字が含まれているかどうかを確認するにはどうすればよいですか?私はpreg_match
文字列内の一番上の文字を最小にする
preg_match('/[A-Z]/', $var)
でこれを確認したが、このコードは例Ó
、Ł
ためのすべての文字では動作しません。
どうすれば修正できますか? unicode
フラグで、あまりにも\p{Lu}\p{Lt}
パターンを追加すること
文字列にUTF-8のエンコードで最低1つの大文字が含まれているかどうかを確認するにはどうすればよいですか?私はpreg_match
文字列内の一番上の文字を最小にする
preg_match('/[A-Z]/', $var)
でこれを確認したが、このコードは例Ó
、Ł
ためのすべての文字では動作しません。
どうすれば修正できますか? unicode
フラグで、あまりにも\p{Lu}\p{Lt}
パターンを追加すること
A-Z
は、ASCII範囲の間探しています。あなたが表示している文字は、その範囲外です。 \p{Lu}
を使用し、ユニコード修飾子u
を使用してください。
preg_match('/\p{Lu}/u', $var)
デモ:より多くのUnicodeオプションについてhttps://regex101.com/r/WZaOCD/1/
http://php.net/manual/en/regexp.reference.unicode.phpを参照してください。
ありがとう!正常に動作します。 –
試してみてください。
preg_match('/[A-Z\p{Lu}\p{Lt}]/u', $var)
まだ動作しません:/ –
@polakpolkovskiご迷惑をおかけして申し訳ございません。再試行する。 – mega6382
@TomUddingここで使用されているものがあるのは、受け入れられた/上書きされた回答からOPがそこに来た可能性があります。実際の回答(https://stackoverflow.com/a/10726645/4333555)でもこの問題は解決されるはずですので、私はそれが非常に有用なdupだとは思わないと思います。 – chris85