Как написать регулярное выражение для URL - PullRequest
1 голос
/ 24 августа 2011

Я использовал Проводник регулярных выражений, но все еще не могу найти правильный шаблон.

Вот мой URL:

http://pie.crust.com:18000/TEST/TEST.html

Вот мой RegExp:

/[^http:\/\/][\w-\W]+[\/]/

И вывод:

ie.crust.com:18000/TEST/

Все, что я хочу, этодомен (в основном все между // и /):

pie.crust.com:18000

Что мне не хватает?Я просто не могу понять это.Есть идеи?

Заранее спасибо.

Ответы [ 5 ]

3 голосов
/ 24 августа 2011

Попробуйте это: http:\/\/([^\/]+)

2 голосов
/ 24 августа 2011

Часть [^http:\/\/] совпадает с [^htp:\/] и просто перечисляет все символы, которых не должно быть в начальной части результирующей строки. Так что для http://pie.crust.com:18000/TEST/TEST.html http://p соответствует этому перечислению. Я предлагаю вам следующее выражение:

/http:\/\/([^\/]+)\/.*/

Вы можете использовать String.replace() следующим образом:

var myUrl:String = "http://pie.crust.com:18000/TEST/TEST.html";
var refinedUrl:String = myUrl.replace(/http:\/\/([^\/]+)\/.*/, "$1");
1 голос
/ 24 августа 2011

(?<=http:\/\/)[a-zA-Z.:0-9-]+

Значение p "pie" сопоставляется как часть правила http и поэтому не включено.Использование позитивного взгляда исправило это.

http://regexr.com? 2uhjf

1 голос
/ 24 августа 2011

Попробуйте:

@http://+(.*?)/@

(Ваше регулярное выражение не обязательно должно начинаться и заканчиваться / - проще использовать что-то еще, чего нет в строке поиска.

0 голосов
/ 07 марта 2013
try this...
//http:\/\/([^\/]+)\/.***/
...