我是新來的正則表達式,並沒有任何線索從哪裏開始,它就像一個差異的語言給我。但我需要一個快速完成任務。正則表達式來獲取文件的路徑,而無需域
我需要
http://www.domain.com/folder1/folder2/file_path.txt
,並從中得到公正
/folder1/folder2/file_path.txt
。
謝謝!
我是新來的正則表達式,並沒有任何線索從哪裏開始,它就像一個差異的語言給我。但我需要一個快速完成任務。正則表達式來獲取文件的路徑,而無需域
我需要
http://www.domain.com/folder1/folder2/file_path.txt
,並從中得到公正
/folder1/folder2/file_path.txt
。
謝謝!
從中構建一個URI對象和它的屬性之一將有你想要的東西。
由於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
支持更多的協議,使該協議可選了。
((https?|ftp)://)?(.*?)/(.*)
沒有正則表達式,這樣做更容易;是正則表達式的一個要求? – 2009-06-30 05:31:38