英語表記の日付を数値に変換する

以下のように英語表記の日付が大量にあり、それを数字だけの日付に変換する必要が出てきた。

February 24th, 2013
March 1st, 2013
June 18th, 2013

すなわち、上の場合以下のようにしたい。

2013/02/24
2013/03/01
2013/06/18

これは Excel を使えば簡単にできるようだが、なぜかうまくいかない。

そこで別の方法でやってみることにした。テキストエディタと FileMaker を使う方法だ。

環境:macOS Catalina Version 10.15.6 (英語) 、Sublime Text Version 3.2.2、FileMaker Pro 18 Advanced(英語)

(1)Sublime Text で以下の置換を実行する。

検索文字列:((^(.*?) {0})) (.*?), ([0-9]{4})
置換文字列:$5\/$1\/$4

これで以下のように「年/月/日」の順に変更された。

2013/February/24th
2013/March/1st
2013/June/18th

(2)英語の月名を数値に置き換える。Sublime Text で 12 回置換すればいいだけだが、スマートじゃない。FileMaker で置換用スクリプトを作ったのでそれで変換した(あまりクールなスクリプトじゃないので、詳細は省略)。

これで以下のように目的の形式に変換できた。

2013/02/24th
2013/03/1st
2013/06/18th

(3)Sublime Text で日付の st や nd、rd、th を置換で取り除く。

これで以下のようになる。

2013/02/24
2013/03/1
2013/06/18

(3)末尾の日付の桁数を 1 → 01 のように2桁のしたいので、Sublime Text で以下の置換をする。

検索文字列:/([0-9])$
置換文字列:/0$1

これで最終的に得たい結果になった。

2013/02/24
2013/03/01
2013/06/18

参考:
マッチした複数の文字列を取得($1, $2, ..) – 後方参照 – Ruby正規表現の使い方
https://www.javadrive.jp/ruby/regex/backreference/index3.html

正規表現で n 回目に出現する文字を検索する – with a Christian Wife
https://wacw.cf/2020/05/14/search-n-times-character-with-regex-expression/