如何在 python 中使用正则表达式检测 CJK?

How to detect CJK with regex in python?

如何在 python 中使用正则表达式检测中文、日文和韩文字符。我已经尝试了很多东西,包括 many recommendations on Stack Overflow,但还没有任何效果。

示例词串:

word_string = "direct tv カルバンクライン 評価 カルバンクライン 価格 赤ジャージ アディダス nike エアリフト dg コート dg ネクタイ fresh 香水 フランス fresh 香水 ハワイ 1directtvcom ビームス バンズ コラボ httpwww1directtvcom 厚底コンバース 通販 フルラ バッグ 値段 プーマ専門店 ドクターマーチン ショート フルラ バッグ 新作 2015 スタッズグラディエーターサンダル モード・エ・ジャコモ mode et jacomo parker パーカー 万年筆 デュオフォールド"

示例 1:

>> print re.findall(r'[\p{IsHiragana}\p{IsKatakana}\p{IsHan}]+', word_string)
['ir', 't', 't', 'nik', 'g', 'g', 'r', 's', 'r', 's', 'ir', 'tt', 'ttp', 'ir', 'tt', 't', 'a', 'park', 'st', 'pa', 'r', 'ssa', 'r', 'r', 'a', 'ssa', 's', 'g', 'ssa', 'riting', 'p', 'ssa', 'r', 'sa', 'st', 'ssa', 'ing', 'sit', 'an', 'rit', 'an', 'ssa']

示例 2:

>> print re.findall(u'[\u4E00-\u9FFF\u4E00-\u9FFF\uF900-\uFAFF]+', word_string)
[]

我什至尝试过使用像 unicodedataunicodescript 这样的库来遍历字符并检测每个字符的语言,但这很快就会变得非常难看。

有谁知道检查 CJK 字符的可靠方法吗?希望有一些简单的正则表达式?

如果您希望第二个示例有效,则单词字符串应为 unicode out.Eg

word_string = u"direct tv カルバンクライン 評価 カルバンクライン 価格 赤ジャージ アディダス nike エアリフト dg コート dg ネクタイ fresh 香水 フランス fresh 香水 ハワイ 1directtvcom ビームス バンズ コラボ httpwww1directtvcom 厚底コンバース 通販 フルラ バッグ 値段 プーマ専門店 ドクターマーチン ショート フルラ バッグ 新作 2015 スタッズグラディエーターサンダルモード・エ・ジャコモ mode et jacomo parker パーカー 万年筆 デュオフォールド"

在我的 cmd 行中试过。