-PR-
解決済み

効率良くURLを拾う正規表現

  • すぐに回答を!
  • 質問No.9155
  • 閲覧数250
  • ありがとう数17
  • 気になる数0
  • 回答数4
  • コメント数0

お礼率 30% (37/123)

掲示板に投稿された文章から、効率良くURL(Email add含む)を拾い、<a>タグを仕込むには、置換処理の中でどのように正規表現を組むのが安全かつ効率的ですか?

例:
 私のHPはhttp://www.hoge.com/です。
 お問い合わせはhoge@hoge.comまで。
        ↓
 私のHPは<a href="http://www.hoge.com/">http://www.hoge.com/</a>です。
 お問い合わせは<a href="mailto:hoge@hoge.com">hoge@hoge.com</a>まで。
通報する
  • 回答数4
  • 気になる
    質問をブックマークします。
    マイページでまとめて確認できます。

質問者が選んだベストアンサー

  • 回答No.2

アドバイザー 詳しい分野:いろいろ

レベル14

ベストアンサー率 37% (668/1777)

http や、ftp の正規表現は、下記のようなものが
あります。

$value =~ s/(http|ftp)\:([\w|\:\!\#\$\%\=\&\-\^\`\\\|\@\~\[\{\]\}\;\+\*\,\.\?\/]+)/<a href=\"$1\:$2\" target=\"_blank\">$1\:$2<\/a>/ig;

もしくは

$value =~ s/((http|ftp):\/\/[\w\$\#\~\.\/\-\?\=\&\:\%]+)/<a href\=\"$1\" target\=\"\_blank\">$1<\/a>/g unless $value=~/</i;

ですが、メールアドレスの正規表現については
判別が非常に困難な部分があるようです。
一応コードはのっていますが、参考URLを参照してみて
下さい。
お礼コメント
basil

お礼率 30% (37/123)

ありがとうございます。

試したところ、完璧でした!
またよろしくお願いします。

投稿日時 - 0000-00-00 00:00:00
関連するQ&A
-PR-
-PR-

その他の回答 (全3件)

  • 回答No.1

 もしかしたら可能なのかも知れませんが、通常は「http://」から始まる文字列を探し出してきて、URLとして使用可能な文字までをアドレスとして認識するようにプログラムした方が効率的だと思います。 ...続きを読む
 もしかしたら可能なのかも知れませんが、通常は「http://」から始まる文字列を探し出してきて、URLとして使用可能な文字までをアドレスとして認識するようにプログラムした方が効率的だと思います。
補足コメント
basil

お礼率 30% (37/123)

早速回答頂きありがとうございます。

頭部分としては
 http://
 https://
に対応したいのと、
 Email address
へも対応したいと思っています。
また、「URLとして使用可能な文字」とは実際に何があるのでしょうか?

また私自身、正規表現をうまく書くノウハウが少ないので、これらの要件を満たす正規表現を伺いたかったのです。

よろしくお願いします。
投稿日時 - 2000-09-22 17:11:54


  • 回答No.3

 なんか、ymdaさんのおっしゃってるのを見ると可能なようですね。  俺の場合、基本的に正規表現が嫌いなので(ルールが難しすぎる、他人のソースを見たとき見にくい、などの理由から)、簡単な置き換えくらいにしか使いませんが、正規表現を使うのであれば、ymdaさんのソースでいいのではないでしょうか。  一般にメールアドレスでは、アカウント部では数字とアルファベットと「-(ハイフン)」が使え、サーバー名の部分 ...続きを読む
 なんか、ymdaさんのおっしゃってるのを見ると可能なようですね。
 俺の場合、基本的に正規表現が嫌いなので(ルールが難しすぎる、他人のソースを見たとき見にくい、などの理由から)、簡単な置き換えくらいにしか使いませんが、正規表現を使うのであれば、ymdaさんのソースでいいのではないでしょうか。
 一般にメールアドレスでは、アカウント部では数字とアルファベットと「-(ハイフン)」が使え、サーバー名の部分はさらに「.(ピリオド)」を使えるようにしているようです。
  • 回答No.4
レベル13

ベストアンサー率 26% (511/1924)

メールアドレスの場合は、やはり@マークでしょうね。 @マークの前後にメールアドレスとして使用可能な文字列を探していく方法が良いんじゃないでしょうか? ...続きを読む
メールアドレスの場合は、やはり@マークでしょうね。
@マークの前後にメールアドレスとして使用可能な文字列を探していく方法が良いんじゃないでしょうか?
補足コメント
basil

お礼率 30% (37/123)

ですよね。

メールアドレスで使える文字って、決まりはあるんでしょうか?
投稿日時 - 2000-09-24 18:15:00
このQ&Aで解決しましたか?
関連するQ&A
-PR-
-PR-
こんな書き方もあるよ!この情報は知ってる?あなたの知識を教えて!
このQ&Aにはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。

その他の関連するQ&A、テーマをキーワードで探す

キーワードでQ&A、テーマを検索する
-PR-
-PR-
-PR-

特集


新大学生・新社会人のパソコンの悩みを解決!

いま みんなが気になるQ&A

関連するQ&A

-PR-

ピックアップ

-PR-
ページ先頭へ