Quantcast
Channel: Vimタグが付けられた新着記事 - Qiita
Viewing all articles
Browse latest Browse all 5608

漢数字表記を無思慮に洋数字表記に書き換え

$
0
0

漢数字と見れば、熟語だろうが人名だろうが無思慮に書き換えますから、あとで直してやってくださいね。「十」とか要チェックです。1桁のところはVimだと\D\@<=\d\(\D\@=\)で検索して、r1文字書き換え、n次を検索のくり返しで直すと楽かも。

なお、これは当初、すべての桁で書き換えるように書いたのですが、実際に使ってみると、ゼロの羅列で読みにくくなるので、万・億・兆は残すことにしました。そのため、せっかく挿入した単位語をあとで消したり、冗長なところがあります。

kan2yo.pl
while(<>) {
  # 単位語の前に数字がない場合「一」を補う
    s/(?<![一二三四五六七八九千百十])(?=[兆億万])/一/g;
    s/(?<![一二三四五六七八九])(?=[千百十])/一/g;
  # 欠けている桁をゼロとして復活させる
    s/(?<=兆)(?![一二三四五六七八九][十百千万]?億)/〇億/g;
    s/(?<=億)(?![一二三四五六七八九][十百千]?万)/〇万/g;
    s/(?<=[兆億万])(?![一二三四五六七八九]千)/〇千/g;
    s/(?<=千)(?![一二三四五六七八九]百)/〇百/g;
    s/(?<=百)(?![一二三四五六七八九]十)/〇十/g;
    s/(?<=十)(?![〇一二三四五六七八九])/〇/g;
  # 単位語のうち千百十を消す
    s/[千百十]//g;
  # 億万でゼロを整理
    s/〇〇〇〇[億万]//g;
    s/(?<=[兆億万])〇+//g;
  # 洋数字に変換
    y/〇一二三四五六七八九/0123456789/;
  # 3桁毎にコンマを挿入
    s/(?<=\d)(?=(\d\d\d)+(?!\d))/,/g;

    print $_;
}

Viewing all articles
Browse latest Browse all 5608

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>