$color="rgb(255, 255, 0)";
我想无论是在一个阵列或三个不同的变量值255,255,0的字符串。例如
$arr[0]=255;
$arr[1]=255;
$arr[2]=0;
我认为可以在正则表达式中完成。但我不好。由于
$color="rgb(255, 255, 0)";
我想无论是在一个阵列或三个不同的变量值255,255,0的字符串。例如
$arr[0]=255;
$arr[1]=255;
$arr[2]=0;
我认为可以在正则表达式中完成。但我不好。由于
如果它始终是在格式,那么这应该不使用正则表达式的工作:
$color = str_replace(array('rgb(', ')', ' '), '', $color);
$arr = explode(',', $color);
我们使用str_replace()
剥离出来的无趣的数据和空白,然后explode()
上逗号串给你在$arr
你想要的输出数组格式。
我也加了这个solution to a codepad所以你可以看到当你运行它时会发生什么。
感谢它的工作。感谢帮助。 –
那么,为什么这是downvoted?代码工作并回答提出的问题。 – Treffynnon
$colors = array();
preg_match('/rgb *\(*(\d+), *(\d+), *(\d+) *\)/', $colors);
list(, $red, $green, $blue) = $colors;
<?php
$color="rgb(255, 255, 0)";
$color=explode('(',$color);
$color=explode(')',$color[1]);
$color=explode(', ',$color[0]);
echo $color[0]."<br>";
echo $color[1]."<br>";
echo $color[2]."<br>";
?>
请参阅codepad示例。
<?php
$text = 'rgb(255, 255, 0)';
preg_match_all('/\\d+/', $text, $matches);
print_r(reset($matches));
?>
编辑随着复位()函数
您需要使用reset()或current()来获得正确的输出格式。 – Treffynnon
有了这个代码,您不必担心逗号和数字之间多余的空格
$data = "rgb(255, 255, 0)";
$data = "rgb( 255 , 255 , 0 )";
preg_match_all("/rgb\s*\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*\)/i", $data, $matches);
print("<PRE>");
var_dump($matches);
print("</PRE>");
你知道CSS颜色表达式也可能包含比率,或者是'rgba()'格式? – mario
@mario我不知道,但实际上你是正确的这个输入实际上来自$('#right')。css('background-color')' –