Ver Mensaje Individual
  #1 (permalink)  
Antiguo 08/02/2009, 11:21
Avatar de Italico76
Italico76
 
Fecha de Ingreso: abril-2007
Mensajes: 3.303
Antigüedad: 17 años, 1 mes
Puntos: 292
Pregunta Eficiencia: uso o no regexpr ?

Hola.... queria plantear que he leido muchas veces que usar expresiones regulares exige al CPU pero mi duda es..... y si para no usar funciones como ereg() o preg_match() que son nativas...... uso varias mas de las del tipo strstr(), que seria mas lento ? cual metodo mas eficiente ?

Para determinar si una palabra es una "version" de algo........ me esforcé en no usar ereg() y preg_match pero bueno... quizas sea menos eficiente despues de todo:

Código PHP:
<?
Function is_num_char($char){ 
 
$c ord($char[0]);  
 return ((
strlen($char)==1) && ($c>=48) && ($c<=57));
}

Function 
is_version_word($str){ // intentar con preg_match
 
$first $str[0]; 
 
$sub_str substr($str,1);
 
$str strtolower($str[0]).$sub_str// la primera debe ser minuscula
 
$first_ver = ($str[0]=='v'); 
 
$first_num is_num_char($str[0]);

 
$sub_after_ver substr(strstr($str'v'),1); 
 
$dot strstr($sub_str'.');  
 
$caso1 = (($first_ver) and (is_num_char($sub_after_ver[0])));  // v2  v1.0  
 
$caso2 = (($first_num) and ($dot));  // 10.0.12.36
 
 
return (($caso1) OR ($caso2));
}

$cadena "7.04a";
echo 
var_dump(is_version_word($cadena));
?>
Ustedes que opinan ? que es mejor ? un par de eregs o todas las funciones "rapidas"que utilice ?

Valoro su opinion!

Cita:
v8.0.3.28325
v1.0
v8.1
3.9
9.7
v2.1.358
4.0.0.1
10.0.12.36
7.04a
... son todas "versiones" mientras que "2000" como Windows 2000, tambien lo seria.... no ? bueno... no se porque no lo consideré asi
__________________
Salu2!