[正規表現] Pythonで特定の単語を含む文章を取得する方法

Tadashi Shigeoka ·  Sun, August 28, 2011

Amazon マーケットプレイスの商品コンディションコメントにて、特定の単語を含むときにその単語を含む文章全体だけをターミナルに出力するプログラムを書きました。

Python

今回は [Python] Amazon API で商品のコンディションコメントを取得してみた から、例として ‘新品’ という単語を含むケースを取り上げました。

まず、正規表現を使うために re モジュールをインポートします。

import re

次に re.search メソッドを使って、特定の単語 ‘新品’ を含む場合のみ conditionnote の内容を出力するように変更します。

# soupから要素 conditionnote の情報のみを取り出す
for item in soup.findAll("conditionnote"):
  # 要素 conditionnote に'新品'という単語を含むとき条件が真
  if re.search(u'新品', item.contents[0]):
    print item.contents[0]  # item要素以下の要素 conditionnote の内容を出力

結果は下記の通り、コンディションコメントに ‘新品’ を含む場合だけ出力されています。

新品未読品です。在庫確実。迅速発送いたします。 新品未読品の状態の書籍です。水濡れ防止にて丁寧に梱包し、迅速に発送いたします。(原則3営業日以内)在庫切れ時は速やかにご注文をキャンセルさせて頂きます。定価より高価になっている場合がございますので、必ず定価をご確認ください。 (土、日、祝は原則お休みです。) 新品未読の商品ですので非常に綺麗です。迅速丁寧に対応いたします。International shipping available. 新品美品です。ビニール梱包、メール便にて迅速発送させていただきます。(ご注文をいただいた時間にもよりますが、翌日〜一週間の発送になります)品切れの場合はご了承下さい。希少品につき、若干定価より高めになっておりますが、ご検討くださいませ。 実質新品として取り扱われたものを仕入直後より未読のままビニール封入しております。ただし、一度棚に並んだり再配本された商品ですので本出品としてはコンディション「非常に良い」とします、陳列や配送などでのスレなどの瑕疵についてはご容赦下さい。相場状況などに合わせて(定価に近い参考価格4830円)より高価格な設定となっております。よくご検討の上ご購入ください。在庫共有しておりますので品切れもございます。その場合、注文キャンセルとさせていただきますがご了承ください。在庫切れ、高価格設定の点についてお気にされない方のみご注文お願い致します。

以上です。