#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 , потому что это функция, а не переменная.