PHP - извлечение символов до и после первого пробела - PullRequest
0 голосов
/ 07 марта 2012

Не могу получить это.Я хотел бы получить первые 2 символа из слова перед первым пробелом и первые 3 символа после первого пробела.

Не уверен, что если разбить слово в [0], [1] будет работать, норегулярное выражение может работать.

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

Спасибо

Ответы [ 6 ]

3 голосов
/ 07 марта 2012

Что вы пробовали?

предложение: взорвите () вашу строку на символе пробела, получите первое и последнее значения в массиве по индексу, затем используйте substr (), чтобы получить нужные вам символы.

1 голос
/ 07 марта 2012

Это должно работать правильно.

   $string = 'Bobby Ryan';

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

   echo $output;
0 голосов
/ 07 марта 2012

Если вы хотите использовать только регулярные выражения:

$string = "Bobby Ryan";
$output = preg_replace("/(\w{2})\w* (\w{3})\w*/", "$1$2", $string);
0 голосов
/ 07 марта 2012

Вы должны сначала разбить строку на части.Посмотрите на взрыв или какой-нибудь струнный токинизатор.Затем вы должны использовать функцию подстроки для получения частей строк.

$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);

Надеюсь, это поможет.

0 голосов
/ 07 марта 2012
$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 голосов
/ 07 марта 2012

Из 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);

разбьет строку на две строки прямо на первом символе пробела, а затем сформирует выходные данные из первых двух символов любогобыл перед пробелом, и первые три символа того, что было после пробела.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...