[PHP-users 29829] Re: メールの自動リンク

ALPHA alpha @ alpha.ne.jp
2006年 7月 20日 (木) 00:39:39 JST


On Wed, 19 Jul 2006 23:57:17 +0900
NISHIMURA Yutaka <forml @ aypio.net> wrote:

> 西村です。

西村様ありがとうございます。

> そりゃそうでしょう。
> 
> >[^=\'\">]
> 最初の↑で、='">でない、何か一文字としてマッチしてしまいます。
> ですので、
> "([^=\'\">][0-9a-zA-Z./_-]+@[0-9a-zA-Z./_-]+\.[0-9a-zA-Z]{2,4})"
> としてマッチさせてやれば、お望みの動作するはずです。

確かに言われてみればその通りでした。

ただ、[^=\'\">]は<a href="などよにのaタグが利用されている場合
禁止する為のものなので外せません。
単純に全て
"([^=\'\">][0-9a-zA-Z./_-]+@[0-9a-zA-Z./_-]+\.[0-9a-zA-Z]{2,4})"
してしまうと、
$mail = "Mail:123456789 @ docomo.ne.jp";
このような場合、結果が
Mail <a href="mailto::123456789 @ docomo.ne.jp">:123456789 @ docomo.ne.jp</a>
になって":"までリンクしてしまいます。

う〜〜〜〜ん。うまく行きません・・・・。
もう少し皆様お知恵をお貸しください。


わたしの方は正規表現をもう一回見直してきます。
よろしくお願いします。



PHP-users メーリングリストの案内