za4me
@za4me
Человек

Более простое написание моего кода?

Всем добрый день. Учу регулярные выражения по данной статье.
Остановился на "Пример к главе". Суть самого регулярного выражения я понял, решил смоделировать ситуацию описанную в статье, остановился на таком решении.

$name = ["фамилия имя отчество", "фамилия и о", "фамилия и.о."];
foreach ($name as $value) {
	preg_match("/([^\s]+)\s+([^\s.])[^\s.]*(?:\s|\.)([^\s.])[^\s.]*/", $value, $array);
	$arr[] = $array[1].' '.$array[2].$array[3];
}
print_r($arr);

Может быть подскажете более гармоничное решение?

И еще пара вопросов:
Каким образом добавить пробел в строку не прибегая к вставке пробела между кавычками? К примеру табуляция вставляется \t, в регулярках пробел пишется как \s (надеюсь суть выразил понятно).
У меня вместо букв имени и отчества вопросы, пробовал выставлять разную кодировку, но к успеху не привело.
201d5aff557842fd96799a1ee6327729.png
  • Вопрос задан
  • 135 просмотров
Пригласить эксперта
Ответы на вопрос 1
VladimirAndreev
@VladimirAndreev
php web dev
если текст в unicode, то надо так: /^.*/u иначе будет именно так...
Ответ написан
Ваш ответ на вопрос

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

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