用于正则表达式的Python和Unicode块

jbb*_*jbb 2 python regex unicode

来自Perl的土地,我可以做类似以下的事情来测试特定unicode块中字符串的成员资格:

# test if string has any katakana script characters
my $japanese = "????";
if ($japanese =~ /\p{InKatakana}/) {
   print "string has katakana"
}
Run Code Online (Sandbox Code Playgroud)

我已经读过Python不支持unicode块(是吗?) - 那么手动实现这一点的最佳方法是什么?例如,{InKatakana}的上述unicode块范围应为U + 30A0 ... U + 30FF.如何在Python中测试unicode范围?其他推荐的解决方案?

我宁愿不使用像Ponyguruma这样的外部包装来限制推出/维护的依赖数量.

Ign*_*ams 6

>>> re.search(u'[\u30a0-\u30ff]', u'????')
<_sre.SRE_Match object at 0x7fa0dbb62578>
Run Code Online (Sandbox Code Playgroud)