正規表現(sub, match)
pythonの正規表現でcompileしたのちにsubすると対象正規表現を一括で置換してくれる。
以下はアルファベット大文字の後に"_“を入れる変換。「(?!^)…」は…にマッチしたときにマッチしない。ただし、先頭を除く。
import re UPPER_RE = re.compile('(?!^)([A-Z])') print UPPER_RE.sub(r'_\1', "DJANGO") --> D_J_A_N_G_O
文字 -> 文字はreplaceで良さげやけど、正規表現で一括で置換する場合はこっちの方がいい。
付録
この表現使えれば、大量データに対して一括変換の対象項目を抽出できる。
import re prog = re.compile(pattern) result = prog.match(string) if result: print 'matchした'