[Perl]http URL の正規表現について

コメント内のURLを自動的にリンクする処理の正規表現が、よく見るとかなり怪しかったの少し調べてみたのですが、それほど正確でなくてもいいと言うのであれば、

s?https?:\/\/[-_.!~*'()a-zA-Z0-9;\/?:\@&=+\$,%#]+

で良いみたいです。

なので、PerlでURLを自動的にリンクする処理は以下のような感じになります。

my $pattern = "s?https?://[-_.!~*'()a-zA-Z0-9;/?:@&=+$,%#]+";
$text =~ s/($pattern)/<a href="$1">$1<\/a>/g;

ちなみに、正確なhttp URL の正規表現はこうらしい。

my $digit = q{[0-9]};
my $upalpha = q{[A-Z]};
my $lowalpha = q{[a-z]};
my $alpha = qq{(?:$lowalpha|$upalpha)};
my $alphanum = qq{(?:$alpha|$digit)};
my $hex = qq{(?:$digit|[A-Fa-f])};
my $escaped = qq{%$hex$hex};
my $mark = q{[-_.!~*'()]};
my $unreserved = qq{(?:$alphanum|$mark)};
my $reserved = q{[;/?:@&=+$,]};
my $uric = qq{(?:$reserved|$unreserved|$escaped)};
my $query = qq{$uric*};
my $pchar = qq{(?:$unreserved|$escaped|} . q{[:@&=+$,])};
my $param = qq{$pchar*};
my $segment = qq{$pchar*(?:;$param)*};
my $path_segments = qq{$segment(?:/$segment)*};
my $abs_path = qq{/$path_segments};
my $port = qq{$digit*};
my $IPv4address = qq{$digit+\\.$digit+\\.$digit+\\.$digit+};
my $toplabel = qq{(?:$alpha|$alpha(?:$alphanum|-)*$alphanum)};
my $domainlabel = qq{(?:$alphanum|$alphanum(?:$alphanum|-)*$alphanum)};
my $hostname = qq{(?:$domainlabel\\.)*$toplabel\\.?};
my $host = qq{(?:$hostname|$IPv4address)};
my $http_URL = qq{http://$host(?::$port)?(?:$abs_path(?:\\?$query)?)?};
my $pattern = $http_URL;

ぐはっ!

http://www.din.or.jp/~ohzaki/perl.htm#httpURL
[1792] Posted by kagahiro at 2010/03/22 14:48:13
オープン | 0 point | Link (2) | Trackback (0) | Comment (0)

キーワード

Perl URL 正規表現 http 自動リンク 

ジャパンのホームページ


[Perl]http URL の正規表現について 関連リンク

Perl(パール)
Perl(パール)とは、Larry Wall氏によって開発された、テキストの検索や抽出やレポート作成に適した、C言語に似た表記法のスクリプトプログラミング言語で、テキスト処理に優れていることから、CGIとしてWebアプリケ...
YouTube動画のURLを正規表現で埋め込みコードに変換するためのPerlコード
掲示板などのスレッドやコメント欄に投稿されたYouTube動画のURLを埋め込みコードに変換する方法を、ネットで検索していろいろ調べましたが、YouTube動画のURLは、http://www.youtube.com/watch?v={VID}とhttp://you...

[Perl]http URL の正規表現について トラックバック

トラックバックURL :


[Perl]http URL の正規表現についてへのコメント


詳細の入力フィールドを表示する

おすすめ  (チェックしてコメントすると最新情報に掲載)
コメント :

< 前の投稿      次の投稿 >

アクセスランキング

今日のアクセスランキング TOP 10

  1. SQLのSELECT文で先頭から上位(TOP)10件のレコードを取得する方法(SQL Server、Oracle、MySQL、PostgreSQL) (17 PV)
  2. 安全性重視の完全無料ナンピンマーチンEA「Million Dollar(ミリオンダラー)」 #FX #ゴールド #ビットコイン (5 PV)
  3. 無料掲示板CGIのダウンロード (4 PV)
  4. USTREAM(ユーストリーム) 日本語版 無料のライブ映像配信サービス (4 PV)
  5. MT4向け無料ヘッジ(両建て)ツール(EA)「STOPPER FREE」 #自動売買 #FX (3 PV)
  6. 2NN 2ちゃんねるニュース速報+ナビ (3 PV)
  7. 自作のMT4向け無料EA(口座縛り無し、ブローカー縛り無し、使用期限無し)とゴゴジャン出品中の有料EAの一覧 #MT4 (2 PV)
  8. 低レバレッジでドル円ロング、安全性最優先のMT4向けの無料EA「DOLLON(ドロン)」 (2 PV)
  9. 2ちゃんねる(2ch) (2 PV)
  10. Million Dollar Ver 1.09向けの収益性を重視したゴールド(Gold、XAUUSD)ロングセットファイル (2 PV)

今月のアクセスランキング TOP 10

  1. SQLのSELECT文で先頭から上位(TOP)10件のレコードを取得する方法(SQL Server、Oracle、MySQL、PostgreSQL) (53 PV)
  2. 無料掲示板CGIのダウンロード (15 PV)
  3. 裁量トレードを半自動化する無料のMT5向け裁量トレード支援ツール(裁量補助EA)「PositionKeeper MT5」 #FX (11 PV)
  4. 究極の爆益ゴールドナンピンマーチンEA「Extreme(エクストリーム)」 MT4向け (9 PV)
  5. 安全性重視の完全無料ナンピンマーチンEA「Million Dollar(ミリオンダラー)」 #FX #ゴールド #ビットコイン (9 PV)
  6. USTREAM(ユーストリーム) 日本語版 無料のライブ映像配信サービス (9 PV)
  7. 究極の爆益ゴールドナンピンマーチンEA「Extreme MT5」 (8 PV)
  8. 自作のMT4向け無料EA(口座縛り無し、ブローカー縛り無し、使用期限無し)とゴゴジャン出品中の有料EAの一覧 #MT4 (7 PV)
  9. 時間指定で仲値トレードも簡単にできる無料EA「NAKANE3 Ver 2.02」 (7 PV)
  10. [FX]裁量ポジションを簡単に管理できるMT4向け無料の裁量補助EA「PositionKeeper」 (7 PV)

アクセス統計

ディレクトリ

関連サイト