В тексте есть следующая группа символов:
:arrow_lower_left:arrow_upper_left:black_small_square:
или :arrow_lower_left:
Нужно как-то достать каждое слово без двоеточий через карманы. Пробовал следующее регулярное выражение:
:(?:([a-z_]+):)+
Но в результате сохраняется только последнее слово. Что я делаю не так?
$str = ':arrow_lower_left:arrow_upper_left:black_small_square: ';
preg_match_all(
'/(?<=:) # проверка на наличие двоеточия перед захватывающей скобкой
([a-z_]+) # захват "слова" (можно даже убрать скобки)
(?=:) # проверка на наличие двоеточия после захватывающей скобки
/x',
$str,
$found
);
var_dump($found);
См. также
Всё по существу и ничего лишнего:
$str = ':arrow_lower_left:arrow_upper_left:black_small_square:';
preg_match_all('~:\K[^:]+~', $str, $arr);
var_dump($arr[0]);
Результат:
array (size=3)
0 => string 'arrow_lower_left' (length=16)
1 => string 'arrow_upper_left' (length=16)
2 => string 'black_small_square' (length=18)
Демо PHP
Демо REGEXP
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
OwnerName - это колонка с фамилиями VarcharПри заполнении массива всегда останавливается на самой длинной фамилии (опытным путем вычислил, что более...
Есть функция, которая, используя библиотеку phpQuery, парсит данные со страницы на сайтеДанные на странице обновляются регулярно, поэтому функция...
Никак не могу разобраться в проблеме отправки формы: нажимаю Save и не отправляется
Доброе время суток! Требуется помощь, есть данные которые приходят из формы, пример данных: