2011-10-21 3 views
1

Я ищу способ в PHP, чтобы вытащить вторую ссылку http://secure.hello.com из следующей строки через регулярное выражение.Выдвиньте второй url из строки через regex

http://hello.com/http://secure.hello.com 

Строка может содержать или не содержать https в любой из точек.

+0

Может ли быть что-то вроде этого: 'http: //hello.com/http: //secure.hello.com/http: // supersecure.hello.com'? Каким должен быть выход? –

ответ

1

Попробуйте это регулярное выражение:

://\S*/(\w+://\S*) 

Он ищет первый :// затем ищет косую черту некоторых символов слова, то ://, то ничего, кроме пробелов. Текст, который вы хотите, находится в первой группе захвата.

В PHP строковый литерал можно записать в виде:

'#://\S*/(\w+://\S*)#' 

Смотреть это работает онлайн: ideone

Если вы хотите ограничить к HTTP или HTTPS, измените \w+ на https?.

+0

Жадный. * Внутри группы захвата также предполагается, что все остальное после этого URL-адреса является частью этого. Возможно, вам следует изменить его на любого персонажа, а не на пространство или что-то подобное? '" #: //.*/ (\ w +: // [^ \ s]) # "" Очевидно, это предполагает, что после URL-адресов, которые OP не указала, может быть что-то. –

Смежные вопросы