WEB相談室

Webページ作成に関しての何でも掲示板です。

タイトル:s と tr の違い

0:[投稿] けい [2003/01/26 11:22 ][環境:win2000 UNIX]

いつもお世話になっております。

下の二つの置換の違いは何でしょうか?

       tr/<br>/\n/;
       s/<br>/\n/g;


tr 演算子を使った場合、意図したよりも余分に改行がついてしまいました。

手元のCGI&Perlポケットリファレンスによると、

tr/☆/★/; において、
() や <> などのようにペアとなる区切り文字を使う場合は、
★にもペアの区切り文字で囲む、と書いてあるのですが

<\n> としなければならないという事でしょうか?

いわゆるテキストエディタなどの置換をしたいのですが、
s///; を使ったほうが賢明なんですかね?


1:[回答] NaN [2003/01/26 14:17 ]

trの場合、☆、★の部分には正規表現ではく文字のリストを指定します。

$str = 'abc<br>def';

($str_s = $str) =~ s/<br>/\n/g;
($str_tr = $str) =~ tr/<br>/\n/;

print "$str_s\n"; #結果→abc\ndef(<br>が\nに置換)
print "$str_tr\n"; #結果→a\nc\n\n\n\ndef(<とbとrと>とがそれぞれ\nに置換)


2:[完了] atusi [2003/02/08 13:42 ]

すいません、海外、それもネットが使えない場所に
急に赴任させられてましてご返信遅れました。

ありがとうございました。
文字のリスト、の意味が今までわかっておりませんでしたが、
>(<とbとrと>とがそれぞれ\nに置換)
このご指導を頂いて意味が非常によくわかりました。
どうもありがとうございました。

これからもどうぞよろしくお願いします。


3:[完了] けい [2003/02/08 13:45 ]

すいません、同僚のクッキーが残っていました。
何度もすいません。

回答(必須): 状態:

お名前(必須):

e-mail:

URL:




[戻る]

ChaichanPAPA's World