villiwalla
@villiwalla
HTML-верстка

Как выделить строку до того или иного символа?

Нужно выделить ФИО из строки. Есть несколько вариантов строки:
  1. Фамилия Имя Отчество (город) текст текст текст
  2. Фамилия Имя Отчество] (город) текст текст текст


У меня проблема в том что, с первым вариантом проблем нету, а вот второй вариант захватывает лишний символ ].
Использую:
preg_match( '/(\W+)[]|(]/',  trim( $desc['author'] ), $match );
$rating[$rating_count]['author'] = trim( $match[1] );


Перебирать $match и проверять на наличие ] и удалять, костыльно, хочется решить проблему 1 регуляркой.
  • Вопрос задан
  • 174 просмотра
Решения вопроса 2
@BorisKorobkov Куратор тега PHP
Web developer
Сделайте "\W+" нежадным "\W+?"

P.S. Что за магия в "[]|(]"?
Ответ написан
@errogaht
PHP developer
preg_match('#^([\w ]+)\]? \(.*?\) .*$#u', $string, $matches);
$fullName = isset($matches[1]) ? $matches[1] : null;
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы