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