regs help please

HOCOK

Guest
regs help please

чёта невыходит вытащить YO и AE
помогите плз

PHP:
$str = "input name='yo' value='ae' size=40";
preg_match_all("/(?:name)|(?:value)='(.*)'/i",$str,$matches3);
print "<pre>";
print_r($matches3);
 

pdi

Новичок
Re: regs help please

Зачем ломать голову на RegExp'ом, в данном случае он не тривиален и будет обрабатываться дольше, чем такой код:

PHP:
$str = "input name='yo' value='ae' size=40";
$parts = preg_split("/\s/", $str);
$matches = array();
foreach($parts as $part)
	if (preg_match("/(?:name|value)='(.*)'/i", $part, $matches1))
		$matches[] = $matches1[1];
print "<pre>"; 
print_r($matches);
А результат будет тот же :)
 

SunDrop

Помощник поисков. робота
To pdi
А можно узнать, откуда информация о том, что будет обрабатываться дольше?
 

SiMM

Новичок
> Зачем ломать голову на RegExp'ом, в данном случае он не тривиален и будет обрабатываться дольше, чем такой код:
Так какого же лешего ты в своём коде использовал регулярник и функции для работы с регулярниками (при чём, неоднократно) вообще?
 

pdi

Новичок
To SunDrop:
все просто, почитай как работает машина регулярных выражений и как она обрабатывает RegExp.
PS. Посмотри Perl Bookshelf, там есть глава про эту самую машину.

To SiMM:
preg_match("/(?:name|value)='(.*)'/i", $part, $matches1) - обрабатывать намного легче, чем preg_match_all("/(?:name|value)='(.*?)'/si",$str,$matches3);
Да и конечно можно было обойтись простыми строковыми функциями.
 
Сверху