Created by
sironekotoro
last modified
| use strict;
use warnings;
use utf8; # プログラム中にマルチバイト文字を利用するときに利用
use Encode; # マルチバイト文字を出力するときに利用
# 参考 https://twitter.com/6Lgug/status/1011529645559173120
# ハッシュテーブル(変換表)を用意する
my %hash = (
'1' => 1,
'2' => 2,
'3' => 3,
'4' => 4,
'5' => 5,
'6' => 6,
'7' => 7,
'8' => 8,
'9' => 9,
'a' => 'A',
'B' => 'B',
'C' => 'C',
'D' => 'D',
);
# ファイル下部の__DATA__以降から1行ずつ読む
for my $line (<DATA>) {
chomp $line;
# 正規表現でキャプチャ
$line =~ /(\d)[年|ー]?(\w)組?/;
my $year = 'DUMMY';
# ハッシュテーブルを参照する
# keyがあればvalueが返り、if文の条件が正となる
if ( $hash{$1} ) {
$year = $hash{$1};
}
else {
# ハッシュテーブルにない場合には、
# 半角と判断してそのまま代入する
$year = $1;
}
my $class = 'DUMMY';
if ( $hash{$2} ) {
$class = $hash{$2};
}
else {
$class = $2;
}
# 文字列を連結する
my $edited = $year . "年" . $class . "組";
# マルチバイト文字を出力するときはエンコード処理をする
print encode ( 'utf8', $edited ), "\n";
}
__DATA__
1A
1ーB
1ーC
1ーD
1年E組
3年A組
3年B組
3年C組
3年D組
4年a組
4年B組
4年C組
|
| use strict;
use warnings;
use utf8; # プログラム中にマルチバイト文字を利用するときに利用
use Encode;# マルチバイト文字を出力するときに利用
# 参考 https://twitter.com/6Lgug/status/1011529645559173120
for my $line (<DATA>) {
chomp $line;
# tr演算子を使う
$line =~ tr/0-9a-zA-Za-z/0-9A-ZA-ZA-Z/;
$line =~ tr/ー/年/;
if ( $line =~ /[0-9]年[A-Z]組/ ) {
# 何もしない
}
elsif ( $line =~ /(\d)年?(\w)/ ) {
$line = "$1年$2組";
}
print encode('utf8',$line), "\n";
}
__DATA__
1A
1ーB
1ーC
1ーD
1年E組
3年A組
3年B組
3年C組
3年D組
4年a組
4年B組
4年C組
|
| # 参考 https://twitter.com/6Lgug/status/1011529645559173120
1A
1ーB
1ーC
1ーD
1年E組
3年A組
3年B組
3年C組
3年D組
4年a組
4年B組
4年C組
|