正規表現
リャマ本(表紙にリャマが載ってるから・Perl入門の名著)を読んでお勉強中なんですが
正規表現で軽く詰まったorz
覚えることたくさんで大変でございます。明日C++のレポート出さなきゃいけないのにやってない。まぁ、10分くらいでやるのでいいです
正規表現の章で、文字列の置換を「カンタンに」行えることがわかったので、Cで作ったHTMLコンバータをPerlで書いてみる
#!/usr/bin/perl
%map = (
"&" => "&" ,
""" => "\"",
"<" => "<" ,
">" => ">",
);
print "<pre>\n";
foreach $str (<>) {
foreach (sort keys %map) {
$str =~ s/$map{$_}/$_/g;
}
print $str;
}
print "</pre>\n";
多分ちゃんと動くはず!どこか問題があれば教えてくださると嬉しいです。
「ここはこうすると省略出来るよ~」とかも教えてくださると嬉しいです。
ひとつの行に対して「&」、「"」、「<」、「>」の処理を行っているので、あんまり宜しくないと思います。いっぺんにする方法はないんでしょうか。
さらに、処理する順番では「&」を一番最初にしないといけないのでsortで「&」が最初にくるようにしておいた
もっとスマートに出来る筈
それでも、Cで50~60行かかってたプログラムが20行かからないってのは凄い。
っつーか文字列いじるのすごい楽