CGI-BBS > CGI > Perl > 文字列の処理について教えてください。


カレッヂ
カレッヂ


質問者 霹靂火天  投稿日 12/20(木) 00:37:08
初めまして、霹靂火天と申します。

ある文字列の中で特定の二文字(例えば「」など)に囲まれた部分だけ
表示文字色を変えるにはどうすればいいのでしょうか。

私が考えている方法は文字列の中から特定の二文字を検索してその二文字だけを
半角スペースに置換して、次いでqw/を使ってリストに変換してから
それぞれを表示するという方法なのですが、なんか無駄が多い気がする上に
コマンド一覧だけを見て練り上げた方法ですので具体的な処理がわかりません。

これより良い方法があるのなら是非教えてください。
よろしくお願いいたします。
回答者 しあわせのツボ  [削除]  投稿日 12/20(木) 01:01:27
そのロジックですと、元の文字列中に半角スペースがあった場合、狂ってしまいますね。

変換したい文字列が$stringに格納されている時、「」内の文字をボールドで表示したいと思った場合、基本的には
$string =~ s/「(.*?)」/「<b>$1</b>」/g;
の1行でOKです。
# 例外が発生することがあるので「基本的には」と書いています

文字列の検索置換はperlのセールスポイントですので、しっかり学んでおいて下さい。
質問者 霹靂火天  [削除]  投稿日 12/20(木) 01:06:09
どうもありがとうございました。
まだまだ勉強が足りないようで、頑張ります。
質問者 霹靂火天  [削除]  投稿日 12/20(木) 01:06:34
どうもありがとうございました。
まだまだ勉強が足りないようで、頑張ります。
回答者 しあわせのツボ  [削除]  投稿日 12/20(木) 12:15:07
あ、ひとつ落としてる…
$string =~ s/「(.*?)」/「<b>$1<\/b>」/g;
ですね。失礼しました。

返信(回答)する


Web裏技