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

如何在python中使用正则表达式检测CJK?,python,regex,unicode,character-encoding,cjk,Python,Regex,Unicode,Character Encoding,Cjk,如何在python中使用正则表达式检测中文、日文和韩文字符。我尝试了很多方法,包括堆栈溢出,但都没有效果 示例字串: word_string = "direct tv カルバンクライン 評価 カルバンクライン 価格 赤ジャージ アディダス nike エアリフト dg コート dg ネクタイ fresh 香水 フランス fresh 香水 ハワイ 1directtvcom ビームス バンズ コラボ httpwww1directtvcom 厚底コンバース 通販 フルラ バッグ 値段 プーマ専門店 ドク

如何在python中使用正则表达式检测中文、日文和韩文字符。我尝试了很多方法,包括堆栈溢出,但都没有效果

示例字串:

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)
[]
我甚至尝试使用
unicodedata
unicodescript
之类的库来循环字符并检测每个字符的语言,但这很快就会变得非常糟糕


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

如果你想让第二个例子生效,字符串应该是unicode

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

在我的命令行中尝试过。

结果我得到了
[u'ir',u't',u't',u'nik',u'g',u'r',u's',u'ir',u'tt',u'ttp',u'ir',u'tt',u't',u'a',u'park',u'r']
。什么版本的python?我现在用的是2.7。这是否需要python3?2.6.6,centos 6.5Oh的默认版本!似乎对例2有效<代码>字串。解码('utf-8')!繁荣