簡體   English   中英

用於正則表達式的Python和Unicode塊

[英]Python and Unicode Blocks for regex

來自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這樣的外部包裝來限制推出/維護的依賴數量。

>>> re.search(u'[\u30a0-\u30ff]', u'カタカナ')
<_sre.SRE_Match object at 0x7fa0dbb62578>

正如伊格納西奧所說,重新表達非常有用。 不要忘記先導入。 此搜索僅查找全角片假名。

import re  
re.search(u'[\u30a0-\u30ff]', u'カタカナ')  

或者你可能已經有了一個字符串。

import re  
x = "カタカナ"  
re.search(u'[\u30a0-\u30ff]', x.decode('utf-8'))

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM