2017-01-18 56 views
3

我有以下字符串:如何從字符串獲取http?

"http://add.co" id="num_1" 

我怎樣才能從這個字符串只得到"http://add.co"

我試圖使用模式:

^http:\/\/(+s)* 
+0

嘗試'爆炸(「」,$ str)[0]'。或者可以在一開始就有沒有URL的字符串?然後嘗試''〜^「?https?:// \ S +)*〜'' –

+0

http://stackoverflow.com/questions/6768793/get-the-full-url-in-php這會幫助你。 – Bogdan

+0

我混淆了你的問題。你想要什麼'http'或'http:// add,co' ..查看答案。 –

回答

1

有一對夫婦的方式來實現你想要什麼:

隨着preg_match

$str = '"http://add.co" id="num_1"'; 
preg_match('/^"(.*?)"/', $str, $matches); 
echo $matches[1]; 

隨着str_replaceexplode

$str = '"http://add.co" id="num_1"'; 
$url = str_replace("\"", "", explode(" ", $str)[0]); 
echo $url; 
2

你可以使用這個表達式^"http:\/\/[^"]+(?=")幾乎捕捉您的網址。

String : "http://add.co" id="num_1" 
Matches : "http://add.co 

你可以最後"追加到比賽進行修復。也許有人可以編輯我的正則表達式來包含最後的"

在這裏看到的例子:https://regex101.com/r/oppeaQ/1

1

像這樣:

1)explode()函數傷了你的字符串分解成分隔符陣列。

2)。preg_replace()替換與定義的正則表達式匹配的字符串的包含。

$string = '"http://add.co" id="num_1"'; 
$array = explode(':',$string); 
echo preg_replace('/\"/','',$array[0]); 

輸出:

http 

AND

$string = '"http://add.co" id="num_1"'; 
$array = explode(' ',$string); 
echo preg_replace('/\"/','',$array[0]); 

輸出:

http://add.co 
1
<?php 
$string = '"http://add.co id="num_1"'; 
preg_match_all('/[a-z]+:\/\/\S+/', $string, $matches); 
print($matches[0][0]); 
?> 

O/P

在我的機器

http://add.co //測試