вырезать регой ненужную конструкцию

ReMaRk

Новичок
вырезать регой ненужную конструкцию

есть строка:
display=source, start=1, end=2, solid=3
Как регулярным выражением убить все что не start=1 и не end=2?
пасиб...
 

ReMaRk

Новичок
не совсем так... мне нужно в результате получить строку:
"start=1, end=2"
 

fixxxer

К.О.
Партнер клуба
А зачем регой?
PHP:
$s = "display=source, start=1, end=2, solid=3";
$allowed = array('start','end');

for($a=explode(', ',$s),$i=0,$c=sizeof($a);$i<$c;$i++)
  if (in_array(substr($a[$i],0,strpos($a[$i],'=')),$allowed)) $result[]=$a[$i];
$result = @join(', ',$result);

echo $result;
 

гоша

Guest
в общем случае задачу "выбрать только нужные подстроки из строки" можно решить так:

PHP:
$a="aa bb cc dd ee";

preg_replace("~((aa)|(ee)|(ff))~e",'$e[]="$1"',$a);
print_r($e);
-~{}~ 01.04.04 17:26:

> for($a=explode(', ',$s),$i=0,$c=sizeof($a);$i<$c;$i++)

FYI [m]foreach[/m]
 

гоша

Guest
Код:
a="aa bb cc dd ee"; 
e=[]
a.replace(/((aa)|(ee)|(ff))/g,
	function($1){ e.push($1) }
);
alert(e)
 
Сверху