ニートのための情報技術2・正規表現2

広告

CSV(カンマ区切り)→HTML

Excelなどで書き出せるCSVファイルをHTMLに変換するソフトはありますが、いちいちダウンロードするのは面倒だなと感じました。というわけで正規表現でゴリゴリやります。

元データ

日付,日経平均,NYダウ
2008年10月21日,9306.25,9045.21
2008年10月20日,9005.59,9265.43
2008年10月17日,8693.82,8852.22
2008年10月16日,8458.45,8979.26
2008年10月15日,9547.47,8577.91
2008年10月14日,9447.57,9310.99
2008年10月13日,お休み,9387.61
2008年10月10日,8276.43,8451.19
2008年10月9日,9157.49,8579.19
2008年10月8日,9203.32,9258.1
2008年10月7日,10155.9,9447.11
2008年10月6日,10473.09,9955.5
2008年10月3日,10938.14,10325.38
2008年10月2日,11154.76,10482.85
2008年10月1日,11368.26,10831.07
2008年9月30日,11259.86,10850.66
2008年9月29日,11743.61,10365.45
2008年9月26日,11893.16,11143.13
2008年9月25日,12006.53,11022.06
1989年12月29日,38916,2753.2
1987年10月2日,25862,2640.99
1984年1月4日,9927,1269.05
1951年1月10日,データ無し,240.4
1933年2月27日,データ無し,50.16
1928年10月1日,データ無し,240.01

正規表現

(.*),(.*),(.*)

これを

<tr>r<td>$1</td>r<td>$2</td>r<td>$3</td>r</tr>

に置換します。

解説

正規表現はカンマにぶつかるまで任意の文字列を探すことを3回繰り返すだけです。

置換は、それぞれ$1, $2, $3にカッコ内にヒットしたものが入ります。これにタグをつけてやればOK。rは改行を意味します。

結果

<tr>
<td>日付</td>
<td>日経平均</td>
<td>NYダウ</td>
</tr>
<tr>
<td>2008年10月21日</td>
<td>9306.25</td>
<td>9045.21</td>
</tr>
<tr>
<td>2008年10月20日</td>
<td>9005.59</td>
<td>9265.43</td>
</tr>
<tr>
<td>2008年10月17日</td>
<td>8693.82</td>
<td>8852.22</td>
</tr>
<tr>
<td>2008年10月16日</td>
<td>8458.45</td>
<td>8979.26</td>
</tr>
<tr>
<td>2008年10月15日</td>
<td>9547.47</td>
<td>8577.91</td>
</tr>
<tr>
<td>2008年10月14日</td>
<td>9447.57</td>
<td>9310.99</td>
</tr>
<tr>
<td>2008年10月13日</td>
<td>お休み</td>
<td>9387.61</td>
</tr>
<tr>
<td>2008年10月10日</td>
<td>8276.43</td>
<td>8451.19</td>
</tr>
<tr>
<td>2008年10月9日</td>
<td>9157.49</td>
<td>8579.19</td>
</tr>
<tr>
<td>2008年10月8日</td>
<td>9203.32</td>
<td>9258.1</td>
</tr>
<tr>
<td>2008年10月7日</td>
<td>10155.9</td>
<td>9447.11</td>
</tr>
<tr>
<td>2008年10月6日</td>
<td>10473.09</td>
<td>9955.5</td>
</tr>
<tr>
<td>2008年10月3日</td>
<td>10938.14</td>
<td>10325.38</td>
</tr>
<tr>
<td>2008年10月2日</td>
<td>11154.76</td>
<td>10482.85</td>
</tr>
<tr>
<td>2008年10月1日</td>
<td>11368.26</td>
<td>10831.07</td>
</tr>
<tr>
<td>2008年9月30日</td>
<td>11259.86</td>
<td>10850.66</td>
</tr>
<tr>
<td>2008年9月29日</td>
<td>11743.61</td>
<td>10365.45</td>
</tr>
<tr>
<td>2008年9月26日</td>
<td>11893.16</td>
<td>11143.13</td>
</tr>
<tr>
<td>2008年9月25日</td>
<td>12006.53</td>
<td>11022.06</td>
</tr>
<tr>
<td>1989年12月29日</td>
<td>38916</td>
<td>2753.2</td>
</tr>
<tr>
<td>1987年10月2日</td>
<td>25862</td>
<td>2640.99</td>
</tr>
<tr>
<td>1984年1月4日</td>
<td>9927</td>
<td>1269.05</td>
</tr>
<tr>
<td>1951年1月10日</td>
<td>データ無し</td>
<td>240.4</td>
</tr>
<tr>
<td>1933年2月27日</td>
<td>データ無し</td>
<td>50.16</td>
</tr>
<tr>
<td>1928年10月1日</td>
<td>データ無し</td>
<td>240.01</td>
</tr>

時給30,000円のアルバイト

高校の頃、時給30,000円でアルバイトをしていた。

というとすごいようだけど、そうじゃなくて、事務の補助で書式がメチャクチャなデータがたくさんあって、それを一つの書式に打ち直すというもので、みんなは手で売っていたけど、自分は正規表現をちょこちょこっと書いて一気に置き換えていただけの話。

出来高制なので、時給30,000円くらいになったけれど、あっという間に終わってしまうのでたいして稼げませんでした。仕事が無尽蔵にあるならもっと稼げたかもなー

ある種の事務作業はエディタとか表計算のスキルがあると、ない人の数十倍の効率で仕事ができて、しかも疲れないし、間違えないことになります。

外資系投資銀行でも最初にExcelスキルは叩き込まれるらしいけど、これは日系に転職したときにものすごいアドバンテージになるとか。是非身につけておきましょう。

広告