人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

Perl5.8.4でテキスト中にメールアドレス、が含まれていたら別の値に変換する処理を行いたいのですが、マッチング(正規表現)の方法を教えて下さい。*別に出会い系サイトを作っているわけではありませんが。

●質問者: dak
●カテゴリ:コンピュータ
✍キーワード:テキスト マッチング メールアドレス 出会い系サイト 正規表現
○ 状態 :終了
└ 回答数 : 4/4件

▽最新の回答へ

1 ● nankichi
●7ポイント

http://www.din.or.jp/~ohzaki/perl.htm#Mail

Perlメモ

長いですよ。

◎質問者からの返答

このリソースは先程も見たのですが、正直な所、解決方法が良く分かりません。

$mail_regex =

q{(?:[^(¥040)<>@,;:”.¥¥¥¥¥[¥]¥000-¥037¥x80-¥xff]+(?![^(¥040)<>@,;:”.¥¥¥¥} .

q{¥[¥]¥000-¥037¥x80-¥xff])|”[^¥¥¥¥¥x80-¥xff¥n¥015”]*(?:¥¥¥¥[^¥x80-¥xff][} .

q{^¥¥¥¥¥x80-¥xff¥n¥015”]*)*”)(?:¥.(?:[^(¥040)<>@,;:”.¥¥¥¥¥[¥]¥000-¥037¥x} .

q{80-¥xff]+(?![^(¥040)<>@,;:”.¥¥¥¥¥[¥]¥000-¥037¥x80-¥xff])|”[^¥¥¥¥¥x80-} .

q{¥xff¥n¥015”]*(?:¥¥¥¥[^¥x80-¥xff][^¥¥¥¥¥x80-¥xff¥n¥015”]*)*”))*@(?:[^(} .

q{¥040)<>@,;:”.¥¥¥¥¥[¥]¥000-¥037¥x80-¥xff]+(?![^(¥040)<>@,;:”.¥¥¥¥¥[¥]¥0} .

q{00-¥037¥x80-¥xff])|¥[(?:[^¥¥¥¥¥x80-¥xff¥n¥015¥[¥]]|¥¥¥¥[^¥x80-¥xff])*} .

q{¥])(?:¥.(?:[^(¥040)<>@,;:”.¥¥¥¥¥[¥]¥000-¥037¥x80-¥xff]+(?![^(¥040)<>@,} .

q{;:”.¥¥¥¥¥[¥]¥000-¥037¥x80-¥xff])|¥[(?:[^¥¥¥¥¥x80-¥xff¥n¥015¥[¥]]|¥¥¥¥[} .

q{^¥x80-¥xff])*¥]))*};

$str =~ s/$mail_regex/¥”this is email-address¥.¥”/g;

といった形で良いのでしょうか?


2 ● ke_ishi
●18ポイント

http://www.rescue.ne.jp/CGI-BBS/cgi/perl/20021107172018.shtml

文章中のリンク、メールアドレスを自動的にリンク付けしたい。

こことかどうでしょう

◎質問者からの返答

$str =~ s/b[-w.]+@[-w.]+.[-w]+b/this is address/g;

コピペしてとしてみたのですが、全くヒットしません。うーん何でだろ。


3 ● まきのっぴ
●25ポイント

http://www.din.or.jp/~ohzaki/perl.htm

Perlメモ

まず参照すべきはこれだと思いますが、凄く長いです…

ので、私は↓のようにしています。

[¥w¥-.]+@[¥w¥-]+(¥.[¥w¥-]+)+

一般的なメアドならこれで十分だと思います。たとえば $str に含まれるメアドをクリッカブルにする処理なら↓のような感じです。

$str =~ s/([¥w¥-.]+@[¥w¥-]+(¥.[¥w¥-]+)+)/<a href=”mailto:$1”>$1<¥/a>/g;

◎質問者からの返答

皆さんに示して頂いたソースが一部はてなのCGI?で変換されているのか、コピペでは動作しないようですが、幾つか変換して試してみます。回答ありがとうございます。


4 ● siachan
●25ポイント

http://www.hatena.ne.jp/

はてな

$str =~ s/¥b[-¥w.]+@[-¥w.]+¥.[-¥w]+¥b/this is address/g;

¥マークが入ってないんじゃないですか?

◎質問者からの返答

あ、なる。ありがとうございました。

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ