Screaming Loud

研究・プログラミングなど気づいたことをメモをしています。読書記録はこちらに記載しています。https://bookmeter.com/users/75944

日本語の正規表現

正規表現を利用

全角も含めた記号があるかを判定する

import re

query = u"「明けましておめでとう。」"

# 記号に関しては思いつくものを適当に上げました.
# \マークは書かないと正規表現の一部として認識されてしまう.
symbols = u"[.!?$%&_\-\[\]!?()「」、。『』]"

# query,symbol共にUnicodeで入力
if re.search(symbols,query,re.U):
    print "found it"

print re.sub(symbols,"",query,re.U)

出力は以下

found it
明けましておめでとう

全角の文字を比較するにはUnicodeに変換して比較。
utf-8のままではうまくいかない。

  • 注意点

正規表現の検索文字列はUnicodeによる変換を指定してあげないとだめ。
さいごのre.UはUnicodeでやりますよという合図。