2012-01-24 7 views
1

私は中国語で書かれた文章を持っています。regexで漢字を除くすべてを削除しますか?

これは、中国語の文字、スペース、カンマ、感嘆符などのフィラーのすべてをUTF8でエンコードしたものです。

latin1文字列で正規表現を使用すると、preg_replace[a-zA-Z]を使用して、フィラーを除去してフィラーを削除できます。

フィラーアイテムをすべて削除している間に、中国語の文字列に中国語のアルファベット文字のみを保持するにはどうすればよいですか?

表12-2:

答えて

4

this documentによると、ここでは漢字のUnicodeの範囲です。

preg_replace('/[^\u4E00-\u9FFF]+/', '', $string); 

または

\P\p

すべてunicode scriptsためhereを参照の否定である

preg_replace('/\P{Han}+/', '', $string); 

:漢漢字

Block        Range   Comment 
CJK Unified Ideographs    4E00–9FFF  Common 
CJK Unified Ideographs Extension A 3400–4DBF  Rare 
CJK Unified Ideographs Extension B 20000–2A6DF Rare, historic 
CJK Unified Ideographs Extension C 2A700–2B73F Rare, historic 
CJK Unified Ideographs Extension D 2B740–2B81F Uncommon, some in current use 
CJK Compatibility Ideographs   F900–FAFF  Duplicates, unifiable variants, corporate 
characters 
CJK Compatibility Ideographs Supplement 2F800–2FA1F Unifiable variants 

あなたはこのようにそれを使用することができますを含むブロック

+0

私はちょうど[4E00-9FFF]を試しましたが、それは動作していないようです... – David19801

+0

@ David19801:それは正しい方法を使用していないようです。私の編集を参照してください。 – Toto

関連する問題