Snippets

sironekotoro 最悪

Updated by sironekotoro

File saiaku_regex.pl Modified

  • Ignore whitespace
  • Hide word diff
 
 # 参考 https://twitter.com/6Lgug/status/1011529645559173120
 
-# 変換表を用意する
+# ハッシュテーブル(変換表)を用意する
 my %hash = (
     '1' => 1,
     '2' => 2,

File saiaku_tr.pl Modified

  • Ignore whitespace
  • Hide word diff
     if ( $line =~ /[0-9]年[A-Z]組/ ) {
         # 何もしない
     }
-    elsif ( $line =~ /(\d)年(\w)/ ) {
-        $line = "$1年$2組";
-    }
-    elsif ( $line =~ /(\d)(\w)/ ) {
+    elsif ( $line =~ /(\d)年?(\w)/ ) {
         $line = "$1年$2組";
     }
 
Updated by sironekotoro

File saiaku_regex.pl Modified

  • Ignore whitespace
  • Hide word diff
 use strict;
 use warnings;
-use utf8;   # プログラム中に2バイト文字を利用するときに利用
-use Encode; # 2バイト文字を出力するときに利用
+use utf8;   # プログラム中にマルチバイト文字を利用するときに利用
+use Encode; # マルチバイト文字を出力するときに利用
 
 # 参考 https://twitter.com/6Lgug/status/1011529645559173120
 
 
     # 文字列を連結する
     my $edited = $year . "年" . $class . "組";
-    # 2バイト文字を出力するときはエンコード処理をする
+    # マルチバイト文字を出力するときはエンコード処理をする
     print encode ( 'utf8', $edited ), "\n";
 
 }

File saiaku_tr.pl Modified

  • Ignore whitespace
  • Hide word diff
 use strict;
 use warnings;
-use utf8;  # プログラム中に2バイト文字を利用するときに利用
-use Encode;# 2バイト文字を出力するときに利用
+use utf8;  # プログラム中にマルチバイト文字を利用するときに利用
+use Encode;# マルチバイト文字を出力するときに利用
 
 # 参考 https://twitter.com/6Lgug/status/1011529645559173120
 
Created by sironekotoro

File saiaku_regex.pl Added

  • Ignore whitespace
  • Hide word diff
+use strict;
+use warnings;
+use utf8;   # プログラム中に2バイト文字を利用するときに利用
+use Encode; # 2バイト文字を出力するときに利用
+
+# 参考 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 . "組";
+    # 2バイト文字を出力するときはエンコード処理をする
+    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組

File saiaku_tr.pl Added

  • Ignore whitespace
  • Hide word diff
+use strict;
+use warnings;
+use utf8;  # プログラム中に2バイト文字を利用するときに利用
+use Encode;# 2バイト文字を出力するときに利用
+
+# 参考 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組";
+    }
+    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組

File worst.txt Added

  • Ignore whitespace
  • Hide word diff
+# 参考 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組
HTTPS SSH

You can clone a snippet to your computer for local editing. Learn more.