regex — php preg_match разобрать строку гистограммы

У меня есть информация о цвете гистограммы ImageMagick в строке, я хочу проанализировать строку с помощью функции php preg_match (), извините, у меня нет больше знаний о регулярных выражениях.

<?php
$str = "588: ( 99, 75, 52) #634B34 srgb(99,75,52)";
preg_match('/(?P<colors>\d+\:)/', $str, $matches);
print_r($matches);
?>

Ожидаемый результат

Array
(
[colors] => 588,
[red] => 99,
[green] => 75,
[blue] => 52
)

Как получить желаемый результат или есть другой способ получить цвета и плотность?

0

Решение

Я думаю, ты хочешь что-то подобное,

(?P<colors>\d+):\s*\(\s*(?P<red>\d+),\s*(?P<green>\d+),\s*(?P<blue>\d+)

DEMO

1

Другие решения

Вы можете использовать это регулярное выражение для получения значений в srgb:

$str = "588: ( 99, 75, 52) #634B34 srgb(99,75,52)";
preg_match_all("/srgb\s*\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*\)/i", $str, $matches);
var_dump($matches);

так что если у вас есть строка всегда так:

substr($str, 0,3);

будет 588

0

По вопросам рекламы [email protected]