メインコンテンツにスキップ
正規表現:日付の一部を取得する方法_各形式対応

日付の一部を取得する正規表現を書く日付形式に分けて説明します。

Yoom 青柳 avatar
対応者:Yoom 青柳
2か月以上前に更新

概要

2023/01/23(yyyy-mm-dd)、2021-01-23(yyyy/mm/dd)等の日付形式から、年(yyyy)、月(nn)、日(dd)のみをアウトプットとして抽出する方法をご紹介します。 

なお、月および日が一桁の場合に頭に「0」が付かない正規表現も併せてご紹介します。

使用するオペレーションおよびアクション

以下すべて「テキストからデータを抽出する」オペレーション内の「正規表現によるデータの抽出」を使用します。

また、すべて共通で抽出対象の文字列は、抽出元の文章や日付を設定します。

例)「yyyy-mm-dd」、「yyyy/mm/dd」、「yyyy年nn月dd日」、「yyyymmdd」など

年(yyyy)のみを取得する方法

■作成イメージ

■作成方法

抽出箇所を検索(正規表現指定)で以下の正規表現を設定します。

※年(yyyy)の場合は日付形式を問わず共通の正規表現となります。

[0-9]{4}

月(mm)のみを取得する方法

一桁月で0を含む場合(例:4月⇒04)

■作成イメージ

■作成方法
抽出箇所を検索(正規表現指定)で以下の正規表現を設定します。

日付形式が(yyyy-mm-dd)の場合

(?<=-)(.*)(?=-)

日付形式が(yyyy/mm/dd)の場合

(?<=/)(.*)(?=/)

日付形式が(yyyy年mm月dd日)の場合

(?<=年)(.*)(?=月)

日付形式が(yyyymmdd)の場合

(?<=[0-9]{4})(.*)(?=(0[1-9]|[12][0-9]|3[01]))

一桁月で0を含まない場合(例:4月⇒4)

■作成イメージ

■作成方法

抽出箇所を検索(正規表現指定)で以下の正規表現を設定します。

日付形式が(yyyy-mm-dd)の場合

(?<=-).*(10|11|12)(?=-)|(?<=^.{6}).{1}

日付形式が(yyyy/mm/dd)の場合

(?<=/).*(10|11|12)(?=/)|(?<=^.{6}).{1}

日付形式が(yyyy年mm月dd日)の場合

(?<=年).*(10|11|12)(?=月)|(?<=^.{6}).{1}

日付形式が(yyyymmdd)の場合

(?<=[0-9]{4}).*(10|11|12)(?=0[1-9]|[12][0-9]|3[01])|(?<=^.{5}).{1}

日(dd)のみを取得する方法

一桁日で0を含む場合(例:5日⇒05)

■作成イメージ

■作成方法

抽出箇所を検索(正規表現指定)で以下の正規表現を設定します。

日付形式が(yyyy-mm-dd)の場合

(?<=(0[1-9]|1[0-2])-)(.*)

日付形式が(yyyy/mm/dd)の場合

(?<=(0[1-9]|1[0-2])/)(.*)

日付形式が(yyyy年mm月dd日)の場合

(?<=(0[1-9]|1[0-2])月)(.*)

日付形式が(yyyymmdd)の場合

(?<=[0-9]{4}(0[1-9]|1[0-2]))(.*)

一桁日で0を含まない場合(例:5日⇒5)

■作成イメージ

■作成方法

抽出箇所を検索(正規表現指定)で以下の正規表現を設定します。

日付形式が(yyyy-mm-dd)の場合

(?<=(0[1-9]|1[0-2])-).*((^0[1-9]|[12][0-9]|3[01]))|(?<=^.{9}).{1}

日付形式が(yyyy/mm/dd)の場合

(?<=(0[1-9]|1[0-2])/).*((^0[1-9]|[12][0-9]|3[01]))|(?<=^.{9}).{1}

日付形式が(yyyy年mm月dd日)の場合

(?<=(0[1-9]|1[0-2])月).*((^0[1-9]|[12][0-9]|3[01]))|(?<=^.{9}).{1}

日付形式が(yyyymmdd)の場合

(?<=[0-9]{4}(0[1-9]|1[0-2])).*((^0[1-9]|[12][0-9]|3[01]))|(?<=^.{7}).{1}

以上が日付から年、月、日をそれぞれ取得する正規表現となります。

また、yyyy-mm-dd、yyyy/mm/ddの日付形式を抽出する為の正規表現は以下リンク先の記事でご紹介していますので、ご参照ください。

関連記事

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