layout.skip_to_main_content
✍️ 正規表現の記載方法

正規表現の記載方法について説明します。

Yoom 運営事務局 avatar
対応者:Yoom 運営事務局
一週間前以上前にアップデートされました

概要

Yoomで取得したデータは、データ変換オペレーションにより 「置換」や 「抽出」 を用いてアウトプットとして取得することが可能です。 置換・抽出では、【 正規表現 】を用いた定義が必要となりますので、こちらでは正規表現の記載方法についてご紹介します。

正規表現の構文例

この記事ではメールデータを基にデータを抽出することを想定した正規表現のサンプルとその取得結果をご紹介いたします。

基データのサンプル

正規表現と取得結果の例

取得対象

正規表現の例

取得結果の例

メールアドレス

[\w\-\._]+@[\w\-\._]+\.[A-Za-z]+

ドメイン

([a-zA-Z0-9][a-zA-Z0-9-]*[a-zA-Z0-9]*\.)+[a-zA-Z]{2,}

timetechnologies.ltd

携帯電話番号

0[6-9]0-\d{4}-\d{4}

090-1234-5678

携帯電話番号 ※「ー」抜き

0[6-9]0\d{8}

09012345678

固定電話番号

0\d(-\d{4}|\d-\d{3}|\d\d-\d\d|\d{3}-\d)-\d{4}

03-1234-5678

フリーダイヤル

(0120|0800)-\d{3}-\d{3}

0120-123-456

URL

https?://[\w!\?/\+\-_~=;\.,\*&@#\$%\(\)'\[\]]+

「/」形式の日付

\d{4}/\d{1,2}/\d{1,2}

2019/01/23

「年月日」形式の日付

(\d+)年(\d+)月(\d+)日

2019年01月23日

「-」形式の日付

\d{4}-\d{1,2}-\d{1,2}

2019-01-23

「:」形式の時刻

((0?|1)[0-9]|2[0-3]):[0-5][0-9]?

15:15

「時分」形式の時刻

((0?|1)[0-9]|2[0-3])時[0-5][0-9]分?

15時15分

郵便番号

〒\d{3}-\d{4}

〒101-0054

指定の文字列から文末まで

※右記の場合「Office:」に続く後の文字を取得します

(?<=Office:)(.*)

東京都千代田区神田錦町2‑2‑1 KANDA SQUARE11F WeWork内

指定の文字列から指定の文字列まで

※右記の場合「Office:」と「 KANDA」の間の文字を取得します

(?<=Office:)(.*)(?= KANDA)

東京都千代田区神田錦町2‑2‑1

括弧( )内の文字

\(.+?\)

(Sample)

特殊なケースの抽出方法_「\」用いた正規表現

1.メタ文字をエスケープする

正規表現では、以下のメタ文字(特殊文字)を用いることで特定の文字列を取得します。

.   ^   $   [   ]   *   +   ?   |   (   ) ※これはすべて半角文字です。

これらのメタ文字が取得したい文字列に含まれており、通常の文字列として認識させたい場合は「\」(エスケープ)を当該文字の前に置く必要があります。

なお、「\」(エスケープ)をそれぞれ入力した際のイメージは以下です。

\.  \^  \$  \[  \]  \*  \+  \?  \|  \(  \)

例:2023年05月01日(月)09:00-10:00という文字列から2023年05月01日を取得したい場合、(月)の「(」より前の部分を抽出する必要がありますが、その際「(」がメタ文字になるため、「\(」とすることで、通常の文字列として認識させ、年月日を抽出します。

(.*)(?=\()

2.改行後にある文字列の抽出方法

改行後にある文字列は「\n」を用いることで、抽出が可能です。

「\n」は改行タグを表し、こちらを以下のように正規表現に組み込みます。

正規表現:(?<=\n)(.*)(?=\n住所)
・(?<=\n)...抽出したい文字列より前の改行部分を指定し、除外する正規表現
・(.*)...抽出したい任意の文字列の正規表現
・(?=\n住所)...抽出したい文字列より後の改行から連なる特定文字列を指定し、除外する正規表現

例文 氏名:●●を取得する場合

会社名:Yoom株式会社

氏名:Yoom太郎

住所:東京都

3.改行を含めた文字列の抽出方法

取得したい文字列自体にも改行が含まれており、その文字列すべてを取得したい場合は「[\s\S]*」を以下のように正規表現に組み込むことで取得が可能です。

正規表現:(?<=■備考\n)([\s\S]*)(?=\n■会社名)
・(?<=■備考\n)...抽出したい文字列より前の改行部分を指定し、除外する正規表現
・([\s\S]*)...抽出したい任意の改行を含む文字列の正規表現
・(?=\n■会社名)...抽出したい文字列より後の改行から連なる特定文字列を指定し、除外する正規表現

例文 これは備考です。という改行が含まれた文字列を取得する場合

■備考

これは

備考です。

■会社名

会社名

関連記事

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