2011-11-11 89 views
0

我有以下字符串:得到一個複雜的字符串的子串在PHP

"@String RT @GetThisOne: Natio" 

如何從這個字符串得到「GetThisOne」?

+0

您確實需要擴展您的問題陳述。你想在RT後獲得這個名字嗎?會不止有一個?等等 – Aerik

+2

你需要更具體一些......文字的位置是否會從字符串變爲字符串?你想要的可能是一個正則表達式... – Bryan

+0

你的意思是你想從字符串中提取「GetThisOne」嗎? 你是否需要提取'@'和':'之間的字符串? 你到目前爲止嘗試過什麼?什麼不行? –

回答

2

您可以使用preg_match這樣的:

<?php 

$string = "@String RT @GetThisOne: Natio"; 
preg_match('/@.*@([A-Za-z]*)/', $string, $matches); 
echo $matches[1]; // outputs GetThisOne 

這裏的模式如下:在第二個@之後找到一個數字串。 Ideone example.

1

查找「@」位置,並在找到「@」後計算「:」的位置。

$at = strpos($string,'@'); 

substr($string,$at,strpos($string,':',$at)-$at); 
1

你總是可以嘗試PHP的爆炸功能

$string = "@String RT @GetThisOne: Natio" 

$arr = explode('@', $string); 

if(is_array($arr) && count($arr)>0) 
{ 
    echo $arr[0]."\n"; 
    echo $arr[1]; 
} 

將回聲出

字符串RT

GetThisOne:NATIO

+0

或者你可以縮短是 –