web-dev-qa-db-ja.com

PHP-文字列に漢字があるかどうかを確認する正規表現

文字列$strそしてその内容に漢字が含まれているかどうかを確認したい(true/false)

$str = "赕就可消垻,只有当所有方块都被消垻时才可以过关";

手伝ってくれませんか?

ありがとう!アドリアン

28
Adrian

Unicode文字クラスを使用できます http://www.regular-expressions.info/unicode.html

preg_match("/\p{Han}+/u", $utf8_str);

これは、少なくとも1つの漢字の存在をチェックするだけです。文字列全体を一致させたい場合は、これを拡張することをお勧めします。

55
mario

@mario答えは正しいです!

漢字の場合は、次の正規表現を使用します:/[\x{4e00}-\x{9fa5}]+/u

そして、u修飾子を忘れないでください!!!

u修飾子について 参照

マリオへのTKS

2
eaglewu

これ リンク 簡体字中国語または繁体字中国語の識別に関する前の質問への質問はあなたにいくつかのアイデアを与えるかもしれません...あなたは実際にあなたが何を意味するかを特定していません、そして私は違いを認識するのに十分な中国語を知りません

1
Mark Baker
preg_match("/^\p{Han}{2,10}+$/u", $str);

/ ^\p {Han} {2,10} + $/ regexを使用します。これは漢字のみを許可します。

  1. 漢字のみ許可します&
  2. 最小2文字と
  3. 最大10文字まで可能

必要に応じて{2,10}を変更することにより、最小文字と最大文字を変更できます。

\ p/追加することは非常に重要です。追加することを避けないでください。

1
Newton Singh