ページへ戻る
− Links
印刷
Python/正規表現
の編集 ::
NJF Wiki
xpwiki
:
Python
/
正規表現
の編集
# d25f2b03 の編集
ページ内容:
*Pythonで正規表現を使う時に全般的な注意事項 [#d25f2b03] Pythonの正規表現は微妙に他の言語と異なるところがあり、特に2.7系では文字コードの扱いで注意が必要です。 まずすべてstr型なら普通に実行されます。 import re testStr = "あいうえお" p = re.compile("あ") print p.sub("か",testStr) 結果 かいうえお 次に全てunicodeでもうまくいきます。 # -*- coding: utf-8 -*- import re testStr = u"あいうえお" p = re.compile(u"あ") print p.sub(u"か",testStr) 結果 かいうえお unicodeとstr型を一つにまとめようとするとエラーになります。 # -*- coding: utf-8 -*- import re testStr = u"あいうえお" p = re.compile(u"あ") print p.sub("か",testStr) 結果 Traceback (most recent call last): File "regExp.py", line 9, in <module> print p.sub("か",testStr) UnicodeDecodeError: 'ascii' codec can't decode byte 0xe3 in position 0: ordinal not in range(128) unicode型からstr型を検索したり、またはその逆をすると検索されません。 import re testStr = "あいうえお" #str p = re.compile(u"あ") #unicode print p.sub("か",testStr) 結果 あいうえお これはエラーにはならないので、結構見つけにくいバグになることがあります。 かならず同じ型でそろえるようにしましょう。 日本語があるならunicodeにそろえるのがおすすめです。 また正規表現検索のメソッドは基本的にre.compleでオブジェクトを作るのと、reからメソッドを呼び出す方法と二つのやり方で実行できます。 import re testStr = u"あいうえお" p = re.compile(u"あ") print p.sub(u"か",testStr) print re.sub(u"あ", u"か", testStr) 結果 かいうえお かいうえお 検索パターンを何度も使い回すなら、コンパイルした方がよいでしょう。 パターンも動的に変えるなら、reから呼び出すと便利です。 以下では正規表現の基本的な書式は既知のものとし、pythonでの使い方を中心に解説します。
編集の要約:
Q & A 認証:
ページ更新時は次の質問にお答えください。(プレビュー時は必要ありません)
Q:
日本の首都は?(漢字で)
A:
お名前:
タイムスタンプを変更しない
テキスト整形のルールを表示する
[1]
Links list
(This host) = https://njf.jp
(This host)
/cms/modules/xpwiki/?cmd=edit&help=true&page=Python%2F%E6%AD%A3%E8%A6%8F%E8%A1%A8%E7%8F%BE