2012-01-05 85 views
0

我在PHP中的字符串格式如下:PHP和正则表达式任务

http://aaaaaaaaaa/*http://bbbbbbbbbbbbbbb 

,其中aaa ...和bbb ....代表随机字符且长度随机的。

我想解析字符串,以便我留下这样的:

http://bbbbbbbbbbbbbbb 
+0

它将始终采用http:// aaaaaaaaaa/* http:// bbbbbbbbbbbbbbb格式 – adam2510 2012-01-05 04:58:38

回答

1

在这种情况下,我不建议正则表达式,但一个简单的字符串或爆炸

$data = "http://aaaaaaaaaa/*http://bbbbbbbbbbb" 
$parts = explode('*', $data); 
echo $parts[1]; 

鳍:)

1

在你不需要的正则表达式所有在这种情况下:

$str = 'http://aaaaaaaaaa/*http://bbbbbbbbbbbbbbb'; 
echo substr($str, strpos($str, 'http://', 1)); 
1

这里是正则表达式的方法:

$str = 'http://aaaaaaaaaa/*http://bbbbbbbbbbbbbbb'; 
$url = preg_replace("/^.*(http:\/\/.*[^(http:\/\/)+])$/", "$1", $str); 
echo $url; 
1

嗨这将有助于你得到的地址:

$str = 'http://www.example.com/*http://www.another.org/'; 
$pattern = '/^http:\/\/[\.\w\-]+\/\*(http:\/\/.+)$/'; 
//$result = preg_replace($pattern, '$1', $str); 
$found = preg_match_all($pattern, $str, $result); 
$url = (!$found==0) ? $result[1][0] : ''; 
echo $str . '<br />' . $url; 
0

这里是一个干净的解决方案:抢“HTTP最后一次出现后一切: //”。

$start = strrpos($input, 'http://'); 
$output = substr($input, $start);