RegEx获取文件的路径,没有域

时间:2009-06-30 05:24:09

标签: vb.net regex

我是正则表达式的新手,并且不知道从哪里开始,这对我来说就像是一种差异语言。但我需要一个快速完成任务。

我需要

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

并获得

/folder1/folder2/file_path.txt

来自它。

谢谢!

4 个答案:

答案 0 :(得分:4)

从中构造一个URI对象,其中一个属性将具有你想要的东西。

答案 1 :(得分:2)

我认为正则表达式应该有效:

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

(用Python测试)

答案 2 :(得分:0)

由于VB.NET位于此问题的标记中,我假设您可以在服务器端访问Request对象:

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

答案 3 :(得分:0)

支持更多协议并使协议也可选。

((https?|ftp)://)?(.*?)/(.*)