プロが教える店舗&オフィスのセキュリティ対策術

PerlでCGIを組んでいます。

textareaで入力され送信された内容から
メールアドレスを削除したいのです。


例えば、
***@xxx.yy.zz のような文字列があったら 自動的にそれを削除するには、
どんな方法が一番簡単に記述できるでしょうか?


もっと砕けていえば、
「@ を検索して、その前後5文字ずつを消す。」
とかそんなイメージのことでも構いません。


つまり、メールアドレスを不完全な形でもいいから自動的に削除したいのです。

何かアイデアがありましたら教えてください。

A 回答 (1件)

こんにちは。

正規表現を使った置換を行えばできます。

$buff = 'はなもげら hana@mogera.com もげもげ';
$buff =~ s/\s.*@.*\s//g;
print $buff;

こうすると、メールアドレスだけ削除できますが、
この場合メールアドレスの前後に空白が入っていないといけません。

@ の前後5文字を削除というのであれば、

$buff =~ s/.{5}@.{5}//g;

とします。

$buff = 'はなもげらhana@mogera.comもげもげ';
$buff =~ s/\s*[a-zA-Z0-9_\-\.]*@[a-zA-Z0-9_\-\.]*\s*//g;
print $buff;

すると、前後がであれば空白が無くても削除します。
    • good
    • 0
この回答へのお礼

お礼が遅くなってすいません。

どうもありがとうございます

大変参考になりました!

お礼日時:2001/11/07 21:18

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