正規表現とは
正規表現(RegExp)は、文字列内で文字の組み合わせを照合するために用いられるパターンです。「正規表現」を利用すれば、長文中から簡単に見つけたい文字列を検索することができます。任意の文字列を正規表現に検索できるため、テキストから部分文字列を探すとか、部分的に文字列を置き換えるとか、目的の文字列かどうか判定する機能も実行できます。本文では主にデータ抽出の場面でよく使う正規表現と初心者に向ける正規表現自動作成・生成ツールを紹介します。コピペだけですぐ使えますから、ぜひご活用してくださいね。
どんな時に使う
- 文字列マッチ(文字照合)
- 文字列を検索
- 文字列の置換
基本的な正規表現
文字 | 意味 |
\d | 数字をマッチ |
\D | 非数字をマッチ |
\s | 垂直タブ以外のすべての空白文字 |
\S | すべての非空白文字 |
w | アルファベット、アンダーバー、数字 |
W | アルファベット、アンダーバー、数字以外の文字 |
p{Lower} | 英文の小文字 |
. | 任意の1文字 にマッチします |
* | 直前の文字が 0回以上 繰り返す場合にマッチ。最長一致。条件に合う最長の部分に一致します。 |
+ | 直前の文字が 1回以上 繰り返す場合にマッチ。最長一致。条件に合う最長の部分に一致します。 |
? | 直前の文字が 0個か1個 の場合にマッチ。最長一致。条件に合う最長の部分に一致します。 |
{n} | 直前の文字の桁数を指定。 |
{n,} | 直前の文字の最小桁数のみ指定。 |
{n,m} | 直前の文字の最小桁数と最大桁数を指定。最長一致。条件に合う最長の部分に一致します。 |
[] | 角括弧に含まれるいずれか1文字にマッチ。 |
[a-z]|[A-Z] [a-zA-Z] [a-z[A-Z]] | aからz or AからZ |
[A-Z&&[RFG]] | AからZ and RFG |
特定の位置関係の正規表現
文字 | 意味 |
^ | 直後の文字が行の 先頭 にある場合にマッチします。 |
$ | 直前の文字が行の 末尾 にある場合にマッチします。 |
\b | 単語の先頭か末尾にマッチします。 |
データ抽出によく使う正規表現のまとめ!
意味 | 文字 |
全ての数字をマッチする | [0-9]+ |
空白文字を削除 | \s+ |
日付(YYYY-MM-DD) | \d{4}-\d{2}-\d{2} |
日付(YYYY.MM.DD) | 20\d{2}(([^\d]|/s|//|:)?\d{1,2}){5} |
日付(YYYY年MM月DD日) | [0-9]{4}年[0-9]{1,2}月[0-9]{2}日[\s\S]*[0-9]{2}:[0-9]{2} |
画像 | (?<=<img)(.+?)(?=>) |
(?<=src=”)(.+?)(\.jpg|\.png|\.gif|\.bmp|\.jpeg) | |
(?<=src=”)(.+?)(\.jpg|\.png|\.gif|\.bmp|\.jpeg|\.JPG|\.PNG|\.GIF|\.BMP|\.GIF) | |
[^/]+.jpg | |
[^/]+(\.jpg|\.png|\.gif|\.bmp|\.jpeg) | |
(http:|https:|//)(.+?)(\.png|\.jpg|\.gif|\.bmp|\.jpeg) | |
電話番号:000-000-0000 | \d{3,4}-\d{3,4}-\d{3,4} |
\d{3}-\d{4}-\d{4} | |
Email:(例えば:sheunszx-001@gmail.com) | ^[a-zA-Z0-9_-]+@[a-zA-Z0-9_-]+(\.[a-zA-Z0-9_-]+)+$ |
郵便番号 | ^\d{3}-\d{4}$ |
URL | ^https?://([\w-]+\.)+[\w-]+(/[\w-./?%&=]*)?$ |
正規表現を自動作成・生成ツール|Octoparse
1.Octoparse正規表現ジェネレーターとは?
Octoparse正規表現ジェネレーターは、さまざまな条件を設定して、正規表現を自動的に作成するツールです。正規表現の作成方法についてほとんど知らない場合、Octoparse正規表現作成・生成ツールを試してみてください。
2.Octoparseには、正規表現ジェネレーターの使い方
①サイドバーメニューの下の「ツール」ボタンをクリックして、正規表現ジェネレーターをクリックします。
②正規表現ジェネレーターのメインインターフェース
正規表現ジェネレーターのメインインターフェースは、4つの部分で構成されています。
1)元の文字列
「データを再フォーマット」オプション内で正規表現ジェネレーターを開くと、抽出されたテキスト文字列がここに表示されます。
サイドバーメニューからクリックする場合は、入力または貼り付けにより、文字列をソーステキストに直接入力する必要があります。
2)自動生成/参考記事/サンプル
「自動生成」タブには、さまざまなオプションのチェックボックスがあります。これらのボックスをチェックし、ソーステキストのいくつかのパラメータを入力して、正規表現を自動的に生成できます。
「参考記事」タブをクリックして、W3Schoolsの正規表現のチュートリアルにアクセスすることができます。
「サンプル」タブをクリックして、W3Schoolsの例を確認することもできます。
3)正規表現
「自動生成」でパラメータを入力して「生成」をクリックすれば、「正規表現」ボックスで構文が自動的に生成されます。
すべてのテキストにマッチしたい場合は、「正規表現」で「すべてにマッチ」をオンにします。 次に、「マッチング」ボタンをクリックして、左の「マッチした文字列」でターゲットテキストを見つけたかどかを確認します。
4)マッチした文字列
右下の「マッチング」ボタンをクリックしてターゲットテキストが表示されます。
3.正規表現ジェネレーターの使い方
3つのステップだけで正規表現ジェネレーターを簡単に利用できます。実践してみましょう。
例として、以下の文字から、最初目の価格「18,306」を抽出するとしましょう。
「スカイチケット1 泊の合計1 泊の合計額(税、諸費用込み)1 泊の合計額(税、諸費用込み)滞在期間の合計額(税、諸費用込み)¥18,306¥18,306¥18,306¥18,306」
ステップ1:ソーステキストから必要なパラメーターを入力します。
「自動生成」ボックスに5つのオプションがあります。
「で始める」/「で終わる」
ボックスに入力した文字を含めないで、その文字からまたはその文字までの内容を抽出します。
「を含めて始める」/「を含めて終わる」
ボックスに入力した文字を含めて、その文字からまたはその文字までの内容を抽出します。
「を含める」
入力した文字を含む内容を抽出します。
ステップ2:正規表現を作成・生成する
「自動生成」ボックスに必要なパラメータを入力してから、「生成」ボタンをクリックします。
ここでは最初目の価格「18,306」を抽出しますので、「で始める」ボックスに「)¥」、「で終わる」ボックスに「¥」を入力します。
ステップ3:正規表現を適用する
正規表現ボックスに構文ができましたら、「マッチング」をクリックします。
「マッチした文字列」ボックスに抽出したい内容が表示されたら、この正規表現は正確に記述と表します。
データを再フォーマットでツールを開く場合、「応用」をクリックすれば、正規表現を指定できます。
まとめ
本文では主にスクレイピングする時によく使う正規表現と正規表現を自動作成・生成ツールを紹介いたしました。いかがでしょうか?Octoparseで内蔵している正規表現ツールは使い方が簡単でデータの再フォーマットをする時にぜひご活用してください。また、Octoparseそのツールはノーコードのスクレイピングで、コードを書かなくてもデータをスクレイピングできます。もし興味がございましたら、ぜひお試ししてくださいね!