電子書籍の厳選無料作品が豊富!

perlを勉強中です
掲示板に挑戦してみました
引用の文字色を変えたいと思っています。下記のように>>をいれるとその行の文字色を改行まで変えたいです

>>引用文

しかし、やってみると、他の置換えがあってうまくいきません。
どうすればうまくいくのでしょうか?
よろしくお願いします

sub form_decode{
if ($ENV{'REQUEST_METHOD'} eq "POST") { read(STDIN, $form, $ENV{'CONTENT_LENGTH'}); }
else { $form = $ENV{'QUERY_STRING'}; $NG = 1; } @pairs = split(/&/,$form);
foreach $pair (@pairs) { ($name, $value) = split(/=/, $pair);
$value =~ tr/+/ /;
$value =~ s/%([0-9A-Fa-f][0-9A-Fa-f])/pack('H2', $1)/eg;
$name =~ s/%([0-9A-Fa-f][0-9A-Fa-f])/pack('H2', $1)/eg;
$value =~ s/>(&gt;[^<]*|>[^<]*)/&gt;&gt;<font color=\"red\">$1<\/font>/g;
$value =~ s/>/&gt;/g;
$value =~ s/</&lt;/g;

$value =~ s/\r//g;
$value =~ s/\n//g;

&jcode'convert(*value,'sjis');
&jcode'convert(*name,'sjis'); $FORM{$name} = $value;
}
}

A 回答 (1件)

改行文字が何だか分かりませんが、¥nとします。



いろいろ問題がありますね^^;
$value =~ s/>(&gt;[^<]*|>[^<]*)/&gt;&gt;<font color=\"red\">$1<\/font>/g;
のあとに
$value =~ s/>/&gt;/g;
$value =~ s/</&lt;/g;
は、せっかくのfontタグが無効になってしまいますよね。

$value =~ s/>/&gt;/g;
$value =~ s/</&lt;/g;
のあとに、
$value =~ s/&gt;&gt;(.*?)¥n/&gt;&gt;<font color=\"red\">$1<\/font>¥n/g;
で、どうでしょうか。
    • good
    • 0
この回答へのお礼

うまくいきました

丁寧な回答ありがとうございます(_ _)

お礼日時:2013/03/15 01:57

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!