正则表达式的Python和Unicode块
来自Perl之地,我可以执行如下操作来测试特定unicode块中字符串的成员身份:正则表达式的Python和Unicode块,python,regex,unicode,Python,Regex,Unicode,来自Perl之地,我可以执行如下操作来测试特定unicode块中字符串的成员身份: # test if string has any katakana script characters my $japanese = "カタカナ"; if ($japanese =~ /\p{InKatakana}/) { print "string has katakana" } 我已经读到Python不支持unicode块(真的?),那么手动实现这一点的最佳方法是什么呢?例如,{InKatakana}
# 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范围?还有其他推荐的解决方案吗
我不希望使用外部包装器来限制推出/维护依赖项的数量 >>重新搜索(u'[\u30a0-\u30ff]',u'カタカナ')
>>> re.search(u'[\u30a0-\u30ff]', u'カタカナ')
<_sre.SRE_Match object at 0x7fa0dbb62578>
正如Ignacio所说,重新表达非常有用。不要忘记先导入。此搜索只查找全幅片假名
import re
re.search(u'[\u30a0-\u30ff]', u'カタカナ')
或者你手头可能已经有一根绳子了
import re
x = "カタカナ"
re.search(u'[\u30a0-\u30ff]', x.decode('utf-8'))