メインコンテンツにスキップ

データ抽出のための正規表現(Regex)チートシート

2週間以上前に更新

正規表現(regex)は、Octoparseでスクレイピングしたデータを整形・フィルタリング・正確に抽出するために利用できる強力なパターンマッチングツールです。本チートシートでは、基本的な構文からスクレイピングに役立つ実用例までをまとめています。

1. 基本的な正規表現構文

パターン

マッチする内容

.

a.c

"abc", "a2c" (任意の1文字)

\d

\d\d

"42", "01" (数字2桁)

\w

\w+

"hello", "A1_" (英数字+アンダースコア)

\s

a\sb

"a b" (空白文字)

[abc]

[aeiou]

"a", "e" (母音いずれか)

[^abc]

[^0-9]

"A", "!" (数字以外)

^

^Hello

"Hello" (文字列の先頭)

$

world$

"world" (文字列の末尾)


2. 量指定子(繰り返し)

パターン

マッチする内容

*

a*b

"b", "aaab" (0回以上の繰り返し)

+

a+b

"ab", "aaab" (1回以上の繰り返し)

?

colou?r

"color", "colour" (任意)

{n}

\d{3}

"123" (ちょうど3回)

{n,}

\w{4,}

"hello", "regex" (4回以上)

{n,m}

\d{2,4}

"12", "1234" (2〜4回)


3. グループ & 先読み/否定先読み

Pattern

Example

Matches

(abc)

(foo)+

"foo", "foofoo" (キャプチャグループ)

(?:abc)

(?:ab)+

"abab" (非キャプチャグループ)

(?=abc)

\w+(?=\.com)

"google" in "google.com" (肯定先読み)

(?!abc)

\d{3}(?!USD)

"123" in "123EUR" (否定先読み)


4. スクレイピング実用例

A. メールアドレス抽出

[\w.-]+@[\w.-]+\.\w+
  • 例: user@example.com

B. 電話番号

米国形式

\(\d{3}\) \d{3}-\d{4}
  • 例: (123) 456-7890

日本形式

0\d{1,4}-\d{1,4}-\d{4}
  • 例: 03-1234-5678, 090-1234-5678

C. URLs

https?://(?:www\.)?\w+\.\w+(?:/\S*)?
  • 例: https://octoparse.com/docs

D. 価格

\$\d+(?:\.\d{1,2})?
  • 例: $19.99, $100


プロのヒント

まずテスト: Regex101.com でデバッグ
特殊文字はエスケープ: .*\. \* のように
XPathと組み合わせ: //div[matches(text(), '\d+% off')]


5. クイックリファレンステーブル

タスク

正規表現

ハッシュタグ抽出

#\w+

HTMLタグ削除

<[^>]+>

日付(YYYY-MM-DD)

\d{4}-\d{2}-\d{2}

camelCase(キャメルケース)* 分割

([a-z])([A-Z])$1 $2

*「camelCase(キャメルケース)」はプログラミングの命名規則のひとつで、単語をつなぐときに先頭を小文字にし、それ以降の単語の頭文字を大文字にする書き方です(例:userName)。
🐫キャメル=ラクダのコブのように、大文字が単語の区切れ目になることから名付けられています。

こちらの回答で解決しましたか?