Excelで取得した文字列の一部を抽出したい

いつも大変お世話になっております。

Excelで取得した文字列の一部を抽出したいです。
文字列は「~から令和6年5月31日まで 」で、「令和6年5月31日」のみを取り除きたいです。

下記のように代入しました。
期間=System.Text.RegularExpressions.Regex.Match(期間,“\w+\d+年\d+月\d+日”).Value

結果は、「~から令和6年5月31日 」が抽出されます。
お気づきの点ありましたらご教授ください。

Hi @kiki1

Try the below regex:

Input= "~ to May 31, Reiwa 6"
Output= System.Text.RegularExpressions.Regex.Match(Input,"[A-za-z]*\s*\d*\,\s*[A-Za-z]*\s*\d*").Value

Regards

1 Like

Hi @kiki1

You can use the below regular expressions,

Duration=System.Text.RegularExpressions.Regex.Match(Duration,"[A-Za-z]+\s+\d+\,.*"). Value

Check the below image for better understanding,
image

Hope it helps!!

1 Like

こんにちは

要件にもよりますが、以下あたりいかがでしょうか?

System.Text.RegularExpressions.Regex.Match(strData,"(?<=から).*?(?=まで)").Value

あるいは

System.Text.RegularExpressions.Regex.Match(strData,"(?<=から)\w+?年\d+?月\d+?日").Value

ご提案ありがとうございます。
どんな文字列であっても日付を抽出できるようにしたいのですが、何か方法はありますか?
他の方がご提示くださっているような「[A-Za-z]」を使用すれば対応できるのでしょうか??

[A-Za-z]は任意のアルファベットですので、見当違いかと思います。

抽出したい日付フォーマットが必ず元号xx年xx月xx日ならば以下で抽出可能です。(ただし明治以降)

System.Text.RegularExpressions.Regex.Match(strData,"(令和|平成|昭和|大正|明治)\d+?年\d+?月\d+?日").Value

日付フォーマットが変わるならそれに応じたパターンが必要になるかと思います。

解決できました。
いつもありがとうございます :relieved:

1 Like

This topic was automatically closed 3 days after the last reply. New replies are no longer allowed.