正規表現
リャマ本(表紙にリャマが載ってるから・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行かからないってのは凄い。
っつーか文字列いじるのすごい楽