2009-06-30 12 views
0

私は正規表現を初めて使い始めました。どこから始めるべきかわかりません。しかし、私は仕事を達成するために1つの迅速な必要があります。ドメインのないファイルのパスを取得するRegEx

私は

http://www.domain.com/folder1/folder2/file_path.txt 

を取ると、それからだけ

/folder1/folder2/file_path.txt 

を取得する必要があります。

ありがとうございます!

+1

これは、正規表現なしで行うのがはるかに簡単です。正規表現は要件ですか? –

答えて

4

からURIオブジェクトを作成し、そのプロパティの1つが必要なものになります。

2

私は正規表現が動作するはずだと思う:

^http://.*?/(.*)$ 

(パイソンでテスト済み)

+0

はあまり一般的ではありませんが、質問に答えています。 – BCS

0

VB.NETは、この質問のためのタグであるため、私はあなたがにサーバ側でアクセスを持っていると仮定しますリクエストオブジェクト:

Dim instance As HttpRequest 
Dim value As String 

value = instance.Path 

これは、あなたが求めたものを正確に与えるはずです。


編集: - :

考え直しでは、あなたが入力の簡単な(通常の)セットを持っている場合、その場合には、正規表現のみに役立ちます...いくつかの入力文字列からURLを解析することができ

すべての可能なドメインを知っていますか?唯一可能なドメインは「http://www.ABC.com」と「http://www.DEF.com」ですか?そして、ここで

Dim text As String = "http://www.ABC.com/folder1/folder2/file.txt" 
Dim pattern As String = "(?:http://www.ABC.com|http://www.DEF.com)(.*)" 

Dim r As Regex = new Regex(pattern, RegexOptions.IgnoreCase) 

' Match the regular expression pattern against a text string. 
Dim m As Match = r.Match(text) 
Dim g as Group = m.Groups(2) 'Gives the string matched by the capturing parentheses 
0

複数のプロトコルをサポートし、あまりにプロトコルをオプションに。

((https?|ftp)://)?(.*?)/(.*) 
関連する問題