JRの電車の形式称号を正規表現で切り出してやろう

はじめに

JRの電車の形式称号ってどういう仕組みかなんて考えたことなんてないですよねぇ...?
JRの電車の形式称号って実は正規表現で切り出せちゃうんですよね
じゃあ切り出してやろう、というお話です

train1
ここのクハの部分ですね (引用元: Wikipedia)

ここで取り扱わないこと

  • 私鉄の形式称号
  • 旧性能電車の形式称号
  • 形式の数字の部分(上記の画像では103の部分)
  • 番台区分と車両番号(上記の画像では191の部分)

区分1: 搭載する機器

JRの車両では、一部の車両にはモーターが付いてたり付いてなかったりします。
前者が電動車、後者は付随車ってやつですね。
運転台の有無によっても区分されたりします。運転台があれば制御車です。

これらは、以下の法則で付けられます。
1. 運転台がある → を付ける
2. 主動装置(モーター)がある → を付ける
3. 上記の結果、何も付かなかった場合、単独とする

あれ? って同時に付くの? と思った方もいるのではないでしょうか?
もちろん付く車両もありますよ。

区分2: 寝台

これは3形式(581・581・285系)にしかないぐらい電車では珍しいので覚えなくてもいいと思います。
A寝台はを付け、B寝台はを付けます。両方ある場合にはロハの順とします。
そして寝台であることを示すをその後に付けます。

区分3: 等級・用途

特急にグリーン車とか普通車とかありますよね?
こういった所はここの部分で区切られます。
少し複雑なので表+αでまとめました。

文字と等級・用途

文字 等級・用途
グリーン車
普通車
文字 等級・用途 備考
食堂車
事業用車 検測車など
配給車 保線資材を運ぶ車両
郵便車 国鉄時代に廃止
荷物車 国鉄時代に廃止

制約

  • は並立可能で、並立する場合はロハとする。(半室グリーン車など)
  • は並立可能で、並立する場合はロハシの順番とする。
  • は並立可能で、並立する場合はロハユニの順番とする。
  • &は並立不可。(営業上これらが一車両にあったことがない)
  • はそれぞれ単独のみ。

ね? 言うほど難しくないでしょ?

全部をつなげる

区分1

  • クモサのいずれか または クモ かつ 常になければならない

([クモサ]|クモ)

区分2

  • [ または または ロハ] に を加える。
  • また、無くても良い。

((?:[ロハ]|ロハ)ネ)?

区分3

  • ロハユニシヤルのうち、何個かが入る。
  • また、無くても良い。

(ロ?ハ?ユ?ニ?シ?ヤ?ル?)?

結果

([クモサ]|クモ)((?:[ロハ]|ロハ)ネ)?(ロ?ハ?ユ?ニ?シ?ヤ?ル?)?

図解

image.png
(取得元: Regexper)

最後に

ね? 切り出せないことはないでしょ? (完全とは言ってない)
区分3がガバガバ過ぎるので改善求む

Sign up for free and join this conversation.
Sign Up
If you already have a Qiita account log in.