メインコンテンツへスキップ
スクレイピングで取れる生のデータは、そのまま使える状態にはまずなりません。セレクタが欲しい値の場所を特定しても、ページから抜き出された文字列には周辺のノイズが乗ってくることがほとんどです。商品価格には通貨記号や空白、後ろに付いたテキストが残ります。電話番号は同じサイト内でも3種類のフォーマットが混在します。日付は片方のページで「May 15, 2026」、別のページで「2026-05-15」と書かれていたりします。正規表現(regex)は、こうした乱雑なテキストを整った構造化フィールドに洗い出すための定番ツールです。 正規表現は、欲しいテキストの「形」を記述するパターンを定義することで動きます。エンジンが文字列を走査してマッチを見つけ、抜き出したり置き換えたりできるようにします。正規表現の構文を端々まで習得する必要はありません — よくあるパターンを少数押さえれば、スクレイピングのクリーンアップ作業の大部分はカバーできます。

再利用できる頻出パターン

実務でよく使う小さなライブラリ:
  • 価格[\d,.]+ は通貨記号や周辺テキストを切り捨てて、カンマ・小数点付きの数値を捕まえます。(\d{1,3}(?:,\d{3})*(?:\.\d{2})?) まで精緻化すると、1,299.99 のような標準フォーマットを正確に拾えます。
  • 電話番号\(?\d{3}\)?[-.\s]?\d{3}[-.\s]?\d{4} は米国の典型フォーマット — 括弧の有無、ハイフン・ドット・空白による区切り — を扱います。
  • メールアドレス[\w.+-]+@[\w-]+\.[\w.]+ で標準的なメールアドレスの大半を捕まえられます — 正規表現の代表的なユースケースのひとつです。
  • 日付\d{4}-\d{2}-\d{2} はISO形式、\w+ \d{1,2}, \d{4}May 15, 2026 のような形式に対応します。
  • HTMLタグの除去<[^>]+> で文字列からタグを取り除けます。
  • 空白の正規化\s+ で連続する空白文字を1つの空白にまとめます。

実用的なヒント

  • 実物のサンプルでテストする。現実のページには理想化されたサンプルにはない癖があります。信用する前に、実際の対象サイトの出力に対してパターンを走らせてください。
  • 非貪欲な量化子(*?+?)を使う。短いマッチと長いマッチのどちらでも取れるとき、既定の *+ は最長を取ります。それは多くの場合、望んでいる挙動ではありません。
  • キャプチャグループを使う。括弧 () を使えば、大きなマッチの中から本当に欲しい部分だけを取り出せます — データの周辺コンテキストでマッチさせつつ、データだけ残したいときに便利です。
  • ロケールの落とし穴に注意。米国フォーマット(1,299.99)向けに書いた価格正規表現は、カンマと小数点の役割が逆の欧州数値(1.299,99)で誤動作します。日付・電話番号・小数表記でも同様です。

Octoparseのアプローチ

正規表現は書きにくく読みにくいことで有名です。複雑なパターンは雑音にしか見えませんし、小さなミスでも、間違ったデータを黙ってマッチさせたり、正しいデータを取りこぼしたりします。間違いのコストはクラッシュではなく — 後工程でしばらく経ってからやっと気づく、黙って腐ったデータです。 Octoparseは正規表現サポートを抽出ワークフローに直接組み込んでいます — ユーザーは任意のスクレイピングフィールドに対して、エクスポート前の後処理ステップとして正規表現変換を適用できます。スクリプトを別途書く必要はありません。パターン、それを適用するフィールド、洗い出された出力 — すべてが同じタスク定義の中に収まります。 ゼロから正規表現を書くのが得意ではないユーザー向けに、Octoparseは AI支援の正規表現生成 も提供します — ドル金額を取り出す電話番号を取得する末尾の改行を削る のように、自然言語で必要なものを記述すると、AIが動くパターンを生成します。生成されたパターンは、プラットフォーム内で実際のスクレイピング結果に対してテストでき、何にマッチするかを確認し、必要なら調整できます。AIが構文を扱い、ユーザーが結果を検証する分担です。 これは、スクレイピングのワークフローにおける正規表現の2つの実コストに対処しています — 白紙からパターンを書くコストと、それが実データで意図通り動くか検証するコストです。両方をビジュアルエディタの中に吸収していて、別途のエンジニアリングタスクとして残しません。

まとめ

ほとんどのスクレイピングプロジェクトで、深く複雑な正規表現は必要になりません。価格・メール・日付・電話番号・空白整形のための再利用可能なパターンの小さなライブラリで、現実のクリーニング作業の大半はカバーできます。正規表現は正確にマッチするのに足るだけシンプルに保ち、スクレイパーを長期保守する予定があるなら文書化し、構文が手に負えなくなったらAI生成に頼りましょう。目標は、整った一貫性のある出力データ — 正規表現はそのための手段であって、目的ではありません。