RegEx, чтобы получить путь к файлу, без домена - PullRequest
0 голосов
/ 30 июня 2009

Я новичок в регулярных выражениях и понятия не имею, с чего начать, для меня это как язык различий. Но мне нужно быстро, чтобы выполнить задачу.

Мне нужно взять

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

и получите просто

/folder1/folder2/file_path.txt

от него.

Спасибо!

Ответы [ 4 ]

4 голосов
/ 30 июня 2009

создайте из него объект URI, и одно из его свойств будет иметь то, что вы хотите.

2 голосов
/ 30 июня 2009

Я думаю, что регулярное выражение должно работать:

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

(протестировано на Python)

0 голосов
/ 30 июня 2009

Поддержка большего количества протоколов и возможность сделать протокол необязательным.

((https?|ftp)://)?(.*?)/(.*)
0 голосов
/ 30 июня 2009

Поскольку 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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...