preg_split : Получить первое слово в строке

#php #regex #preg-split

#php #регулярное выражение #preg-split

Вопрос:

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

Ответ №1:

Это должно сработать

 $result = preg_split('/s/', trim($subject));
$firstword = $result[0]
  

Комментарии:

1. С добавлением 2 к третьему параметру, чтобы он соответствовал только первому слову, это сработало отлично. Спасибо.

Ответ №2:

Если в предложении есть пробел в качестве разделителей слов, вы можете сделать:

 list($firstWord) = explode(' ',trim($input));
  

Ответ №3:

Если вам просто нужно разделить до первого символа пробела, ваше регулярное выражение по сути является просто символом пробела:

 $output = preg_split('/ /', 'My name is Mansoor', 2);
echo $output[0]; // Will return 'My';
echo $output[1]; // will return 'name is Mansoor';
  

Если вам нужно только первое слово, убедитесь, что вы передаете необязательный аргумент (the 2 ), чтобы указать, что вам нужны только два результата в вашем $output массиве — первое слово и остальная часть предложения. В противном случае вы потратите время на синтаксический анализ текста, который вас не волнует.

Комментарии:

1. Не сработало. Результат: $line = ‘Имя Джона Доу’; $line_parts = preg_split(‘(/ /)’, $line, 2); // Массив ( [0] => Имя Джона Доу)

2. Прошу прощения, круглых скобок не должно было быть в выражении. Исправлено.

3. Это должно быть preg_split , потому что это функция, а не переменная.