Юрий Л.
124 сообщения
#15 лет назад
Нужно выделить первые буквы слов в предложении - Best One Company, т.е BOC . Делал в конструкторе получилось /\b()/g, но в php она не срабатывает.
Виталий К.
55 сообщений
#15 лет назад
У меня данное выражение срабатывает "/\b()/"
Юрий Л.
124 сообщения
#15 лет назад
В таким виде оно у меня выделает первую букву только, я вот так извлекаю:
preg_match("/\b()/", $content, $matches);
$item = $matches.$matches.$matches.$matches;

Может не верно?
Виталий К.
55 сообщений
#15 лет назад
Лучше сделать так:

$pattern = "/\b()/";
$subject = "Best One Company";
preg_match_all($pattern, $subject, $matches);

$item = implode($matches);

с вас проект
Вадим Т.
3240 сообщений
#15 лет назад
Цитата ("storier"):
$pattern = "/\b()/";
$subject = "Best One Company";
preg_match_all($pattern, $subject, $matches);

$item = implode($matches);

Конструкция () в данном случе избыточна, достаточно указать \w
Рекомендую упростить регексп:

$pattern = '/\b\w/';
Вадим Т.
3240 сообщений
#15 лет назад
Ну или реплейсом можно, в одну строку:

$subject = "Best One Company";

echo preg_replace('|\W*(\w)\w*\W*|', '$1', $subject);

P.S.
Кстати, а по условию задачи цифры и знак подчеркивания считаются ли словами?
Если не считаются, то \w не подходит.
В этом случае или заменяйте \w на (если используете только английский алфавит), или оставляйте \w но потом еще одним регекспом удаляйте цифры и подчеркивания, или же используйте следующее выражение (рекомендую):

echo preg_replace('|]*(])]*]*|', '$1', $subject);
Вадим Т.
3240 сообщений
#15 лет назад
Способ с preg_replace работает в полтора-два раза быстрее:

<?php

$subject = "11 Best 22 One,!Company 333 тест 44";

$t1 = microtime(true);
for ($i = 0; $i < 100000; ++$i) {
preg_match_all('/\b]/', $subject, $matches);
$a = implode($matches);
}
printf("%0.3f\n", microtime(true) - $t1);

$t1 = microtime(true);
for ($i = 0; $i < 100000; ++$i) {
$a = preg_replace('|]*(])]*]*|', '$1', $subject);
}
printf("%0.3f\n", microtime(true) - $t1);


У меня выводит:

1.014
0.495
Юрий Л.
124 сообщения
#15 лет назад
Цитата ("storier"):

с вас проект

Спасибо, буду иметь вас ввиду =)
Юрий Л.
124 сообщения
#15 лет назад
Цитата ("tvv"):


У меня выводит:

1.014
0.495


Спасибо Вадим, использовал ваш второй вариант.