2012-03-08 1 views
0

私のURLがどのような正規表現が正規表現ヘルプ - ドメイン名を取り去る

  • を取得することです

    • https://foo.bar.com/somedirectory/somefile.phpまたは

    • http://abc.bar.co.uk/somedirectory/somefile.php

    であると言います

    /somedirectory/somefile.phpまたは

  • somedirectory/somefile.php

    あなたのURLが常にhttp://またはhttps://のいずれかで始まる、これは動作するはずです(そして、あなたが言語を指定していなかったので、ここではPerlで実装だ)と仮定すると
+1

を使用することができますか?言語がURIを解析する関数を提供する可能性があります。 –

+0

ここで "regex url"を検索してください。多分そのような質問には受け入れられた答えがあります。副次的に...おそらくあなたの言語で指定されたいくつかの方法を使ってURLを解析するべきです。 – pcalcao

+0

[URLからホスト名とポートを削除する正規表現ですか?](http://stackoverflow.com/questions/441755/regular-expression-to-remove-hostname-and-port-from-url) –

答えて

2

use strict; 
use warnings; 

my @urls=("https://foo.bar.com/somedirectory/somefile.php", "http://abc.bar.co.uk/somedirectory/somefile.php"); 

foreach my $url(@urls) 
{ 
    if($url=~/^http(?:s)?:\/\/[^\/]+(\/.*)$/) 
    { 
    print "$1\n"; 
    } 
    else 
    { 
    print "$url did not match!\n"; 
    } 
} 

が出力されます:

/somedirectory/somefile.php 
/somedirectory/somefile.php 
1

コード

"/somedirectory/somefile.php" を返すに

var inputString = "https://foo.bar.com/somedirectory/somefile.php"; 
var regex = /https?:[\/]{2}\S*?(\/\S*)/; 
var outputString = inputString.replace(regex,"$1"); 
alert(outputString);​ 

このような正規表現を変更、 "somedirectory/somefile.php" を返すにはJavaScriptを(あなたがそれをhereテストすることができます)使用

var regex = /https?:[\/]{2}\S*?\/(\S*)/; 

正規表現

次のようにコアの正規表現です。あなたが使用している言語これは、に基づいてビットを微調整する必要があるかもしれません:

https?:[\/]{2}\S*?(\/\S*) 

ftpサイトのためにこれを拡張するには、あなたが使用している言語

(ht|f)tps?:[\/]{2}\S*?(\/\S*)