LoginSignup
2
4

More than 5 years have passed since last update.

python3を使って和暦を西暦に直してみた。

Last updated at Posted at 2018-09-05

anacondaでインストールしたpython3を使っています。
reは標準で入っている正規表現を扱うためのモジュールです。

やったこと

正規表現のモジュールを使い和暦を西暦にした。

正規表現について

このサイトを見るのがいいかも。
https://docs.python.jp/3/library/re.html

渡すデータはリストにしました。いい感じに変更してください
wareki_list = ['平成2年','平成10年','昭和40年','平成元年','昭和元年']

wareki_to_seireki.py
import re

for i in range(len(wareki_list)):
    if re.match('昭和元年', wareki_list[i]):
        wareki_list[i] = 1926

    elif re.match('昭和',wareki_list[i]):
        wareki_list[i] = 1925 + int(re.sub(r'\D','',wareki_list[i]))

    elif re.match('平成元年', wareki_list[i]):
        wareki_list[i] = 1989

    elif re.match('平成',wareki_list[i]):
        wareki_list[i] = 1988 + int(re.sub(r'\D','',wareki_list[i]))     

    else:
        continue

結果はこんな感じになります。
[1990, 1998, 1965, 1989, 1926]

やってること

bool(re.match('昭和元年', wareki_list[i]))
昭和元年という文字列がリストの中のi番目にあるか見てる。
あったらTrueを返す。

bool(re.match('昭和', wareki_list[i]))
'昭和'がリストの中のi番目にあるか見てる。

re.sub(r'\D','',wareki_list[i])
\Dは数字以外のキャラクター,re.subは置き換えなのでwareki_listのi番目のstringsの数字以外のキャラクターを''で取り除いてる。

はじめて記事を書いたけどわかりにくかったら訂正するので教えてください。

訂正しました

if bool(re.match('昭和元年', wareki_list[i])):って書いてたのですが,ifboolに変換すると教えていただいたので訂正しました。コメントありがとうございます。(2018/9/06)

2
4
4

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
4