PHP - 在第一个空格之前和之后提取字符

时间:2012-03-07 01:05:47

标签: php regex string

似乎无法得到这个。我想从第一个空格之前的单词和第一个空格之后的前3个字符中获取前2个字符。

不确定是否打破[0]中的单词,[1]会起作用,但正则表达式可能有用。

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

由于

6 个答案:

答案 0 :(得分:3)

你有什么尝试?

建议:在空格字符上爆炸()你的字符串,通过索引获取数组中的第一个和最后一个值,然后使用substr()来获取你需要的字符。

答案 1 :(得分:1)

这应该可以正常工作。

   $string = 'Bobby Ryan';

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

   echo $output;

答案 2 :(得分: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);

会在第一个空格字符处将字符串分成两个字符串,然后形成前面两个字符的输出,这些字符是空格之前的任意字符,前三个字符是空格之后的任何字符。

答案 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);

答案 4 :(得分: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)和特定分隔符。 (更改为爆炸($ delimiter,$ string);

希望这有帮助。

答案 5 :(得分:0)

如果您只想使用正则表达式:

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