perlでhttpアドレスのマッチ表現をするには?

[上に] [前に] [次に]
nozomi 1999/08/20(金) 02:17:39
perlのマッチ表現で以下のようにしてURLのマッチ表現をしたいんですがどうもうまく行きません。
ご指摘お願いします。

$ap_p =~ /(http:\/\/)([a-z|0-9|-|\~|.]+)([\/])([a-z|0-9|- \~|.]+)([\/])(.*)/i) {$ap_q="$1$2$3$4$5";}

nozomi 1999/08/20(金) 02:29:56
上のスクリプトが崩れてましたので一応訂正しておきます。

$ap_p =~ /(http:\/\/)([a-z|0-9|-|\~|.]+)([\/])([a-z|0-9|- \~|.]+)([\/])(.*)/i) {$ap_q="$1$2$3$4$5";}

葉月 1999/08/20(金) 08:45:09
かなださんのサイトで
http://www.tt.rim.or.jp/~canada/comp/cgi/tech/
http://www.tt.rim.or.jp/~canada/comp/cgi/tech/urlmatch/
URLの正規表現について、書かれています。

もうちょっと詳しいのが、
http://www.din.or.jp/~ohzaki/perl.htm(大崎さんのサイト)の
http://www.din.or.jp/~ohzaki/perl.htm#URIに書かれています。

参考になれば...

J.Naka [E-Mail] [HomePage] 1999/08/20(金) 20:24:48
こんにちは、初めまして。
解答ではないのですが、少し希望というかお願いというか(^^;

>nozomi 1999/08/20(金) 02:29:56
>$ap_p =~ /(http:\/\/)([a-z|0-9|-|\~|.]+)([\/])([a-z|0-9|- \~|.]+)([\/])(.*)/i) {$ap_q="$1$2$3$4$5";}
この正規表現は一発で出たはずではないはず。
これに至った過程も提示してもらえると、第三者的閲覧者には
凄く参考になります。(^^;

蛇足:
思考の過程、つまりエディット過程を日付等も含めて自動的に
履歴ファイルとしてくれるEditerがあれば、思いつきでバッパ
書く輩にはとっても重宝するかも(^^;

nozomi 1999/08/22(日) 02:25:53
[[解決]]
 葉月さん、J.Nakaさんご指摘ありがとうございます。
(http:\/\/)([a-z|0-9|-|\~|.]+)([\/])([a-z|0-9|-|\~|.]+)([\/])(.*)/i)

 上のスクリプト$2と$4の部分を([^\/])にしたら結構ミスなくとれました。
 ちなみにこのマッチ部は長いパスを「http://www.wakusei.ne.jp/」ここまでのマッチをしたかったんです。

[上に] [前に] [次に]