2011-10-21 7 views
1

私はPHP内で正規表現を使用して次の文字列のうちの2番目のリンクhttp://secure.hello.comを取得する方法を探しています。正規表現を介して文字列から2番目のURLを引き出します

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

文字列には、またはスポットのいずれかにhttpsを含んでも含まなくてもよいです。それはその後、その後、いくつかの単語文字が続くスラッシュ、://、スペースから離れて何のために検索し、最初://を検索

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

+0

「http://hello.com/http://secure.hello.com/http:// supersecure.hello.com'のようなものがありますか?出力はどのようにすべきですか? –

答えて

1

は、この正規表現を試してみてください。必要なテキストは、最初のキャプチャグループにあります。それはのように書くことができリテラルPHPの文字列で

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

は、それがオンラインで作業を参照してください:ideone

あなたはhttpまたはhttpsに制限したい場合は、https?\w+を変更します。

+0

キャプチャグループ内の貪欲な*は、そのURLの後のすべてがその一部であるとも仮定します。おそらく、あなたはそれを似たようなものではなく、どんなキャラクターにも見直すべきでしょうか? "#://.*/(\ w +:// [^ \ s])#" 'これは、OPが指定しなかったURLの後に何かが存在する可能性があることを前提としています。 –

関連する問題