来自Perl的土地,我可以做类似以下的事情来测试特定unicode块中字符串的成员资格:
# test if string has any katakana script characters
my $japanese = "カタカナ";
if ($japanese =~ /\p{InKatakana}/) {
print "string has katakana"
}
我读过Python不支持unicode块(是吗?) - 那么手动实现这一点的最佳方法是什么?例如,{InKatakana}的上述unicode块范围应为U + 30A0 ... U + 30FF。如何在Python中测试unicode范围?其他推荐的解决方案?
我不希望使用像Ponyguruma这样的外部包装器来限制转出/维护的依赖项数量。
答案 0 :(得分:6)
>>> re.search(u'[\u30a0-\u30ff]', u'カタカナ')
<_sre.SRE_Match object at 0x7fa0dbb62578>
答案 1 :(得分:2)
正如伊格纳西奥所说,表达非常有用。不要忘记先导入。此搜索仅查找全角片假名。
import re
re.search(u'[\u30a0-\u30ff]', u'カタカナ')
或者你可能已经有了一个字符串。
import re
x = "カタカナ"
re.search(u'[\u30a0-\u30ff]', x.decode('utf-8'))