[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 メーリングリストの案内