Forum Webscript.Ru

Программирование => Регулярные выражения => Тема начата: andymc от 22 Марта 2006, 23:54:25

Название: Улучшить функцию
Отправлено: andymc от 22 Марта 2006, 23:54:25
Есть ereg, но он ищет только 1 совпадение строки. Я придумал функцию, которая ищет все совпадения.
Посмотрите, может быть сможете улучшить

// функция на основе ereg, которая бы искала в строке все схождения подстроки

function eregAll($pattern,$string,$array=false){
$regs=array();
if ($array==false){
if (ereg($pattern,$string)){
return 1;
} else {
return 0;
}
} else {
while (ereg($pattern,$string,$reg)){
if (!in_array($reg[0],$regs)) $regs[]=$reg[0];
$string=substr($string,strpos($string,$reg[0])+strlen($reg[0]));
}
return $regs;
}
}
Название: Улучшить функцию
Отправлено: hanslinger от 23 Марта 2006, 08:17:19
WTF...
[p]preg_match_all[/p]
Название: Улучшить функцию
Отправлено: Greg от 23 Марта 2006, 09:21:02
andymc
однако виласипед))))
Название: Улучшить функцию
Отправлено: andymc от 23 Марта 2006, 16:58:37
Использую php 4, и об этой функции, как и о многих других не знал....
Теперь наверное буду учить php 5....
спасибо за подсказку.

Впрочем, если у кого-нить есть интереснные функции по регулярам, то выкладывайте - будет полезно всем.
Название: Улучшить функцию
Отправлено: hanslinger от 23 Марта 2006, 17:09:40
Цитировать

preg_match_all
(PHP 3 >= 3.0.9, PHP 4, PHP 5)