kaibun.pl
30分プログラム、その33。
正規表現で回文判定。厳密な正規表現(正則言語)じゃ無理だけど、Perlの使う強力な拡張された正規表現ならできる。
$ perl kaibun.pl noon OK $ perl kaibun.pl eye OK $ perl kaibun.pl mzp NG $ perl kaibun.pl ごまたまご OK $ perl kaibun.pl みずの NG
use warnings; use strict; use utf8; use Encode; @ARGV > 0 or die "too few arguments"; my $target = decode('UTF-8',$ARGV[0]); if($target =~ m/^(?: (.*) # 前半 (??{quotemeta reverse $1 }) # 後半 | (.*) # 前半 . # 真ん中 (??{quotemeta reverse $2 }) # 後半 ) $/x) { print "OK\n"; }else{ print "NG\n" }