電子書籍の厳選無料作品が豊富!

文字列
http://dailynews.yahoo.co.jp/fc/

http://dailynews.yahoo.co.jp
を削除する正規表現を試行中です。

はじめたばかりでスキルが乏しいのですが、
アドバイスいただきたくよろしくお願いします・

A 回答 (4件)

$url =~ s/https?:\/\/[^\/]+\//\//g;

    • good
    • 0
この回答へのお礼

ご提示いただいた方法でもできました。
ご親切にありがとうございました!

お礼日時:2011/01/17 14:24

http://dailynews.yahoo.co.jp/fc/」から「http://dailynews.yahoo.co.jp」を削除したいなら
s(http://dailynews.yahoo.co.jp)();
でいいと思う.
    • good
    • 0
この回答へのお礼

こちらの方法も良いのですが、
汎用性から他のものを優先しました。
ありがとうございました。

お礼日時:2011/01/17 14:25

なにが「うまくいかない」か書きましょうよ。



こちらで試してみたら
Unmatched [ in regex; marked by <-- HERE in m/http://[ <-- HERE ^/ (略)
と出ました。[と]の数が合わない、と書いてあります。
場所も書いてあります。
[^/]の]が「無い」ってことです。

でも、ありますよね?

原因は、 / が区切りとして認識されたので [^までと]以降に分解されてしまったことです。

s/http:\/\/[^\/]+//g ;
とエスケープするとか、区切りに別の文字を使う
(例 's|http://[^/]+|| ; )
とかです。

詳細はマニュアルでも読んでください。

あとは
・$urlの内容はどうなってますか?
それによっては、 ^http(以下略)とする、とか、gを使わないとかも考えられます。
    • good
    • 0

http://[^/]+





http://dailynews.yahoo.co.jp

にマッチするはずよ。

この回答への補足

早速ありがとうございます。

$url =~ s/http:\/\/[^/]+//g;
こう書いたのですが、うまく動かないので間違っているようです。
ご指摘いただけないでしょうか。

補足日時:2011/01/14 19:43
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!