CGI-BBS > CGI > Perl > 文字列中の特定の部分を繰返し変換がうまくできない。


カレッヂ
カレッヂ


質問者 ken2mng  投稿日 7/28(月) 15:37:48
文字列の置換で、文字列中の">"で始まり"<BR>"で終わる部分だけを色を変えて表示しようと思い以下のような記述をしたのですが…
$text =~ s/>(.*?)<BR>/<font color=#FF0000>>$1<BR><\/font>/g ;


対照の文字列が以下の場合はうまくいったのですが
$text2 = "それって>hhhhhhhhhhhhhh<BR>かな…>AAAAAAA<BR>だと…AAA";

結果:
:それって>hhhhhhhhhhhhhh
:かな…>AAAAAAA
:だと…AAA

しかし、対照の文字列が以下の場合だとうまくいきませんでした。
$text2 = "それって<BR>>hhhhhhhhhhhhhh<BR>かな…>AAAAAAA<BR>だと…AAA";

結果:
:それって>>hhhhhhhhhhhhhh
:かな…>AAAAAAA
:だと…AAA

どのように対処すればよいか教えていただけると助かります
よろしくお願いします。

プロバイダ参照:
サーバのOS:UNIXサーバ
パソコンのOS:Win95系
エディタ:EMEDITER
FTPソフト:
サーバ移転:していない
改造:(未選択)
CGI習熟度:expert

回答者 やまだ  [削除]  投稿日 7/29(火) 02:56:26
$text =~ s/>([^>]*?)<BR>/<font color=#FF0000>>$1<BR><\/font>/g ;
では、どうでしょう。いまいち、どこがどんな風にうまくいかないか分かりませんが。
質問者 ken2mng  [削除]  投稿日 7/29(火) 09:11:11
ありがとうございました。こちらの期待通りのことが出来ました。

>どこがどんな風にうまくいかないか分かりませんが。
 二つ目の文字列だとこちらの期待は
:それって
:>hhhhhhhhhhhhhh
:かな…>AAAAAAA
:だと…AAA

になってほしいのに
:それって>>hhhhhhhhhhhhhh
:かな…>AAAAAAA
:だと…AAA

になってしまう、つまり文字列の最初の<BR>の">"が何かの影響を起こしていたようで、その逃げ方が分からなかったんです。

本当にありがとうございました。

このページは終了したので返信(回答)は書きこめません
 


Web裏技