2012-03-07 93 views
0

似乎無法得到這一個。我想從第一個空格之前的單詞開始的前2個字符以及第一個空格之後的前3個字符開始。PHP - 在第一空間之前和之後提取字符

不確定是否將[0],[1]中的單詞分解,但正則表達式可能有效。

$string = "Bobby Ryan"; 
$output = 'BoRya'; 

感謝

回答

3

你嘗試過什麼?

建議:explode()在空格字符上的字符串,按索引獲取數組中的第一個和最後一個值,然後使用substr()獲取所需的字符。

+0

哈哈,永遠的樣子,我一直在等待着答案,同時我想清楚了...... 感謝您的鼓勵 – mrlayance 2012-03-07 01:30:19

+0

哈哈,你想到了什麼?把它放在你原來的問題下。你需要解釋「First First Last」的名字嗎? – Scuzzy 2012-03-07 01:37:39

0

explode()的手冊條目:(http://www.php.net/explode) - array explode (string $delimiter , string $string [, int $limit ])

可選$limit參數指示到多少塊應當將字符串分解到,並考慮您想達到什麼,隨着substr()http://www.php.net/substr):

list($beforeSpace, $afterSpace) = explode(" ", $string, 2); 
$output = substr($beforeSpace, 0, 2) . substr($afterSpace, 0, 3); 

將打破串入兩個字符串權在第一個空格字符處,然後形成空間前的任何前兩個字符的輸出,以及空格後面的前三個字符。

0
$string = "Bobby Ryan"; 
$var=explode(" ",$string); 
// Totally didnt debug this part, may have to change 2 and 3 to -1 to 1 and 2 
$output = substr($var[0],0,2) + substr($var[1],0,3); 
0

您必須首先將字符串拆分爲多個部分。看爆炸或某種String tokinizer。您必須使用子字符串函數來獲取部分字符串。

$string = "Bobby Ryan"; 
$output = getPartsOfString($string, 2, 3); 
echo $output; 

function getPartsOfString($string, $firstNumOfChars, $secondNumOfChars) { 
{ 
    $part = explode(" ", $string); 

    // Get substrings from parts 
    return substr($part[0], 0, $firstNumOfChars).substr($part[1], 0, $secondNumOfChars); 
} 

該函數可以有多個參數。第一個和第二個字符串的開始。 (子字符串函數中的0)和一個特定的分隔符。 (更改爆炸($分界,$字符串);

希望這有助於

1

這應該正常工作

$string = 'Bobby Ryan'; 

    $words = explode(" ", $string); 
    $output = substr($words[0], 0, 2) . substr($words[1], 0, 3); 

    echo $output; 
0

如果你只想使用正則表達式:。

$string = "Bobby Ryan"; 
$output = preg_replace("/(\w{2})\w* (\w{3})\w*/", "$1$2", $string); 
+0

其實你可能應該使用'$ output = preg_replace(「/ \ s *(\ w {1,2})\ w * \ s +(\ w {1,2})。* /」,「$ 1 $ 2」, $字符串);'。 細分: - \ s *匹配第一個字前的任何空格 - (\ w {1,2})第一個(如果該字只有一個字符)或第一個字的兩個字符 - \ w *字符(如果有的話) - \ s +至少一個空白字符 - (\ w {1,2})第一個(如果該字只有一個字符)或第二個字的兩個字符 - 。*串 – valentinas 2012-03-07 21:33:44

相關問題