Ver Mensaje Individual
  #5 (permalink)  
Antiguo 13/03/2013, 08:05
Avatar de pateketrueke
pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Problema con Expresion Regular

¿Ven por qué digo que pensar así nubla la mente?

La idea detrás de las expresiones regulares es que también la lógica, y si piensas atacar el problema con un patrón complejo será una solución no muy inteligente.

En lugar de ser religioso con el patrón, ¿por qué no simplemente buscas si existe o no la palabra del mes en cuestión?

Código PHP:
$foo = array('candy''bar');
$bar 'fooo_Bazz Candy-does.nothing';

foreach (
$foo as $word) {
  
$regex "/$word/i";

  if (
preg_match($regex$bar)) {
    echo 
"LOL: $word";
  }

Las expresiones regulares son magnificas, pero no van a pensar por ti, ni van a resolver un problema que no has resuelto con la mente primero, formas hay muchas, y las expresiones también pueden ser negativas o positivas.

Hay expresiones que deben ser, pueden ser, podrían contener, pueden no ser, podrían no contener, no deberían contener, etc. La lista inmensa, otro ejemplo.

Código PHP:
$regex '/foo|candy|bar/i';
$bar 'fooo_Bazz Candy-does.nothing';

if (
preg_match($regex$bar$match)) {
  echo 
"LOL: $match[0]";

Para escribir expresiones regulares, como cualquier otro lenguaje, hay que pensar en expresiones regulares, son notación y no tecnología per se.

Si por ejemplo, fueras mi alumno, ya te hubiera hecho repetir el curso por el simple hecho de usar expresiones regulares en lugar de hacer esto.

Código PHP:
$meses = array('enero''febrero''...');
$destino 'bak_Numeros Febrero 2013.xlsx';
$test strtolower($destino);

foreach (
$meses as $mes) {
  if (
strpos($destino$test) !== FALSE) {
    echo 
"El mes es: $mes";
  }

Fácil, sencillo y creativo.

Además de óptimo, pues gasta mucho menos recursos, aunque no lo creas, que las expresiones regulares.

Antes de comenzar con expresiones regulares deberías mejorar tu capacidad cognitiva y creativa, no son un primer recurso, son herramientas de doble filo, y hay que usarlas sabiamente y con cuidado.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.