logo
languageJPdown
menu

正規表現でデータをフォーマットする方法3選!|メールアドレスの抽出を例とし

約5分で読めます

正規表現は、文字列の中で特定の「パターン」を見つけ、その「パターン」を記述することによって、複数の文字列をシンプルに表現することができます。正規表現によってパターン化された文字列は、Pythonなどの自然言語処理で使用することができます。

例えば、メールアドレスとテキストが混在する場合、メールアドレスだけを抽出したい場合は、どのようにすればよいでしょうか。この記事では、複数の文字列からデータをフォーマットし、メールアドレスを抽出する3つの方法を解説しています。

正規表現には、いくつかの方法があります。ぞれぞれの方法について、以下で解説します。

方法1:Excel数式

Excel数式を使用することで、データをフォーマットして、メールアドレスを抽出することができます。以下は、その具体的な手順です。

  1. 抽出したいデータが入っている列を選択します。
  2. フォーミュラバーに、以下の数式を入力します。
lessCopy code=IFERROR(LEFT(RIGHT(B1,LEN(B1)-FIND(" ",B1)),FIND("@",RIGHT(B1,LEN(B1)-FIND(" ",B1)))),"")

※B1は、データが入っているセルの位置に置き換えてください。

  1. 入力が完了したら、数式を選択して、下の右下の角をドラッグして、他のセルにコピーします。
  2. メールアドレスが抽出されたセルを確認します。

方法2:Excel VBA コード

Excel VBAコードを使用することで、メールアドレスを抽出することができます。以下は、その具体的な手順です。

  1. Alt + F11キーを押して、VBAエディタを開きます。
  2. 左側のプロジェクトウィンドウで、VBAのマクロを作成するブックを選択します。
  3. ファイル > 新規作成 > モジュールをクリックして、新しいモジュールを作成します。
  4. 以下のコードを入力します。
vbnetCopy codeSub ExtractEmailAddress()
Dim RegEx As Object
Dim strPattern As String
Dim strInput As String
Dim strOutput As String
Dim matches As Object
Dim i As Long
strPattern = "([a-zA-Z0-9._-]+@[a-zA-Z0-9._-]+\.[a-zA-Z0-9_-]+)"
Set RegEx = CreateObject("VBScript.RegExp")
RegEx.Pattern = strPattern
RegEx.Global = True
For Each cell In Selection
    strInput = cell.Value
    Set matches = RegEx.Execute(strInput)
    strOutput = ""
    For Each Match In matches
        If strOutput = "" Then
            strOutput = Match.Value
        Else
            strOutput = strOutput & "," & Match.Value
        End If
    Next Match
    cell.Offset(0, 1).Value = strOutput
Next cell
End Sub
  1. F5キーを押して、VBAコードを実行します。
  2. セルを選択し、ExtractEmailAddressマクロを実行します。
  3. メールアドレスが抽出されたセルを確認します。

方法3:Octoparse正規表現ツール

Octoparseは、正規表現を使用してデータを抽出することができるWebスクレイピングツールです。以下は、Octoparseを使用してメールアドレスを抽出する方法です。

ステップ1:プロジェクトを作成する

Octoparseを開き、新しいプロジェクトを作成します。その後、目標サイトのURLを入力し、スクレイピング対象のWebページを選択します。

ステップ2:要素を選択する

抽出したいデータが含まれる要素を選択します。Octoparseは、クリック、スクロール、テキスト入力、ページ遷移などのアクションを自動化することができます。この例では、HTMLタグの正規表現を使用して、メールアドレスを含むすべてのテキストを選択します。

ステップ3:正規表現を使用してデータを抽出する

選択した要素に対して、正規表現を使用してデータを抽出します。Octoparseは、正規表現をサポートしており、抽出したいデータに適した正規表現を使用することができます。この例では、メールアドレスを抽出するために、以下の正規表現を使用します。

[0-9a-zA-Z._%+-]+@[0-9a-zA-Z.-]+.[a-zA-Z]{2,}

ステップ4:データをエクスポートする

Octoparseは、抽出したデータをCSV、Excel、HTMLなどの形式でエクスポートすることができます。抽出したメールアドレスをExcelファイルにエクスポートするには、以下の手順に従います。

  • 「Export」タブをクリックし、「To Excel」を選択します。
  • 必要に応じて、ファイル名と保存場所を指定します。
  • 「Export」をクリックして、ファイルをエクスポートします。

以上が、Octoparseを使用してメールアドレスを抽出する方法です。Octoparseは、正規表現の知識がなくても、簡単にデータを抽出することができるWebスクレイピングツールです。

正規表現ツール

Excel、Excel VBA、Octoparseの正規表現ツールを使って、テキストデータからメールアドレスを抽出する方法を紹介しました。Excel数式を使用する場合は、正規表現関数を使って簡単に実現できます。Excel VBAを使用する場合は、プログラムを書く必要がありますが、より高度な処理が可能です。また、OctoparseはGUIで操作でき、正規表現ツールが標準で用意されているため、非プログラマーでも簡単にメールアドレスを抽出することができます。どの方法を使うかは目的やスキルに合わせて選ぶことができます。正規表現は、テキストデータから必要な情報を抽出するために非常に有用であり、様々な場面で活用できます。

人気記事

トピックを検索する

今すぐOctoparseを始めて、業務効率化を実現しましょう。

ダウンロード

関連記事

  • avatarTakahashi
    Twitterは、全世界で月間3億3000万人のアクティブユーザー数を誇り、日本でも月間4500万人が利用する人気SNSです。幅広い年代に利用されていることから、国内企業・日本政府でも積極的にTwitterを活用しています。今や企業のマーケティング活動において、Twitterのデータ活用は欠かせません。 しかし、Twitterデータをどのように抽出すれば良いかわからない方も多いはずです。そこで本記事では、Twitterからデータを抽出する方法を紹介します。 ここで紹介する方法は無料で活用できる上に、かんたんな操作だけでデータ抽出が可能なので、作業時間の短縮や業務生産性の効率化につながります。Twitterデータを上手に活用して、自社のマーケティング活動の精度を高めましょう。
    2023.11.30 · 5 min read
  • avatarMashroomcat
    Twitterには毎日、全世界から何百万人ものユーザーが、顔出しなし、無記名で投稿したり閲覧したりを繰り返しています。その数は、全世界で月間3億3000万人以上といわれており、日本だけでも月4500万人もの人が利用しています。これらのデータをもし簡単に収集して分析できるとしたら、試してみたいと思いませんか?今回はTwitterの投稿の中に良く見かけるハッシュタグを利用したデータ分析方法についてご紹介します。
    2023.07.25 · 6 min read
  • avatarMurata
    人工知能に興味があるエンジニアやAIエンジニアなどが、最近多く利用しているのがOpenAIのコミュニティサイトです。OpenAIのコミュニティサイトには、さまざまなトピックがあり、利用者からのコメントが多く投稿されています。このOpenAIのコミュニティサイトから、自分が目的とするデータを抽出するには、どうしたらいいでしょうか。この記事では、OpenAIのコミュニティサイトからデータを抽出する方法について解説します。
    2023.02.27 · 7 min read
  • avatarKouyama
    App StoreはApple社製のデバイスに向けたアプリケーションを配布するプラットフォームです。非常に多くのアプリが集められており、アプリについてのランキングやレビューは、アプリケーション開発者やWebコンテンツ作成者にとって利用価値の高いデータといえます。本記事では、ローコードスクレイピングツールOctoparseを利用してApp Storeアプリのレビュー情報を取得する方法について紹介します。
    2023.02.20 · 6 min read