Autor Tema: [!] Expresiones Regulares en PHP.  (Leído 1050 veces)

Desconectado Focux

  • PHPero Master
  • ******
  • Mensajes: 1.010
  • Karma: 22
    • Ver Perfil
[!] Expresiones Regulares en PHP.
« en: 17 de Noviembre de 2009, 22:38:49 pm »
Bueno, este es mi primer tutorial en este foro, espero que les guste, primero comenzare con la definición de Expresiones Regulares, está definición la busque en google.

Las expresiones regulares son una serie de carácteres que forman un patrón, normalmente representativo de otro grupo de carácteres mayor, de tal forma que podemos comparar el patrón con otro conjunto de carácteres para ver las coincidencias.

Bueno, en las expresiones regulares usamos unos meta caracteres o caracteres que son los siguentes: .()[]{}*?+$^
Ahora ire explicandolos caracter por caracter.
Primeramente vamos con el posicionamiente, para el posicionamiento usamos ^ y $, El caracter ^ quiere decir que el patron debe estar al comienzo, cuando usamos $ queremos decir que está al final.
Citar
^PHP
Si ponemos:
PHP # Coincide
HPH # No coincide.
Ahora vamos con el punto (.), un punto representa cualquier caracter menos una nueva linea.
Citar
^.
Si ponemos:
ASD #Cualquier cosa coincidiria en este caso.

Cuantificadores y multiplicadores: *+?
* # Coincide si el caracter esta 0 o mas veces. Equivalente a {0,}
? # Coincide si el caracter esta 0 o 1 vez.Equivalente a {0,1}
+ # Coincide si el caracter esta 1 o mas veces. Equivalente a {1,}

Tambien las llaves {}, sirven para especificar la cantidad.
Citar
PHPEROS{2,3} # Coincide si esta una letra de la palabra PHPEROS 2 o 3 veces.
Ahora vamos con los corchetes [] estos permiten especificar el rango de caracteres a comparar. Cabe aclarar que en lo corchetes no se debe poner ^ ya que estaria negando lo de adentro.
Citar
[PHP] //La cadena coincide si se encuentra cualquier letras de la que esta dentro del corchete.
[a-z] //La cadena coincide si se encuentra cualquier letras de la que esta dentro del corchete.
[0-9] //La cadena coincide si se encuentra cualquier numero entre el 0 y el 9.
[^a-z] //Coincide si en la cadena no se encuentra ninguna letra.
Fuente: YO.
« Última modificación: 18 de Noviembre de 2009, 19:23:04 pm por Focux »
Mixtiqueros.net

<?PHP
define
(_miNombre, &#39;Focux&#39;);
if(_miNombre == &#39;Focux&#39;): printf(&#39;%s es un programador avanzado&#39;, _miNombre); else: printf(&#39;Tu no eres %s&#39;, _miNombre); endif;
?>

Comunidad PHPeros

[!] Expresiones Regulares en PHP.
« en: 17 de Noviembre de 2009, 22:38:49 pm »

Desconectado TheGeorge

  • PHPero Avanzado
  • ****
  • Mensajes: 351
  • Karma: 13
  • Sexo: Masculino
    • Ver Perfil
    • websources
Re:[!] Expresiones Regulares en PHP.
« Respuesta #1 en: 18 de Noviembre de 2009, 01:39:30 am »
Cita de: Focux
Cuantificadores y multiplicadores: *+?
* # Coincide si el caracter esta 0 o mas veces. Equivalente a {0,}
? # Coincide si el caracter esta 0 o 1 vez.Equivalente a {0,1}
+ # Coincide si el caracter esta 1 o mas veces. Equivalente a {1,}
Eso no lo entendí... Explicamelo pls! y te ganas un karma + Merecido ;)

\n\n
Nunca me interesé en realidad de aprender esto, la verdad es que es algo complicado.
Saludos.
¡Solo sé, que nada sé...!

Desconectado Focux

  • PHPero Master
  • ******
  • Mensajes: 1.010
  • Karma: 22
    • Ver Perfil
Re:[!] Expresiones Regulares en PHP.
« Respuesta #2 en: 18 de Noviembre de 2009, 02:04:22 am »
Por ejemplo
Citar
[a-z]*
Esa expresion dice que debe haber una letra de la A a la Z 0 o mas veces. Asi con los otros cuantificadores.
Citar
[a-z]+
Esto haria que debe haber una letra de la A a la Z 1 o mas veces.Asi mismo con el ?, lo unico que de 0 a 1.
Mixtiqueros.net

<?PHP
define
(_miNombre, &#39;Focux&#39;);
if(_miNombre == &#39;Focux&#39;): printf(&#39;%s es un programador avanzado&#39;, _miNombre); else: printf(&#39;Tu no eres %s&#39;, _miNombre); endif;
?>

Desconectado westwest

  • PHPero Master
  • ******
  • Mensajes: 2.837
  • Karma: 104
  • Sexo: Masculino
    • Ver Perfil
Re:[!] Expresiones Regulares en PHP.
« Respuesta #3 en: 18 de Noviembre de 2009, 15:14:19 pm »
Algo escueto, pero esta bien. Lo unico... debes explicar para k es {}... k as puesto
"equivale a {0,}" pero no saben k es {...}

Desconectado TheGeorge

  • PHPero Avanzado
  • ****
  • Mensajes: 351
  • Karma: 13
  • Sexo: Masculino
    • Ver Perfil
    • websources
Re:[!] Expresiones Regulares en PHP.
« Respuesta #4 en: 18 de Noviembre de 2009, 17:12:40 pm »
Ya entendi gracias ;)

Karma +
¡Solo sé, que nada sé...!

Desconectado Focux

  • PHPero Master
  • ******
  • Mensajes: 1.010
  • Karma: 22
    • Ver Perfil
Re:[!] Expresiones Regulares en PHP.
« Respuesta #5 en: 18 de Noviembre de 2009, 19:23:17 pm »
Algo escueto, pero esta bien. Lo unico... debes explicar para k es {}... k as puesto
"equivale a {0,}" pero no saben k es {...}
Listo
Mixtiqueros.net

<?PHP
define
(_miNombre, &#39;Focux&#39;);
if(_miNombre == &#39;Focux&#39;): printf(&#39;%s es un programador avanzado&#39;, _miNombre); else: printf(&#39;Tu no eres %s&#39;, _miNombre); endif;
?>

Desconectado NDSi

  • PHPero Avanzado
  • ****
  • Mensajes: 410
  • Karma: 8
  • Sexo: Masculino
    • Ver Perfil
Re:[!] Expresiones Regulares en PHP.
« Respuesta #6 en: 06 de Diciembre de 2009, 03:20:26 am »
No entiendo esto.

Citar
Primeramente vamos con el posicionamiente, para el posicionamiento usamos ^ y $, El caracter ^ quiere decir que el patron debe estar al comienzo, cuando usamos $ queremos decir que está al final.

¿Como que el patron debe estar al principio?

Desconectado westwest

  • PHPero Master
  • ******
  • Mensajes: 2.837
  • Karma: 104
  • Sexo: Masculino
    • Ver Perfil
Re:[!] Expresiones Regulares en PHP.
« Respuesta #7 en: 06 de Diciembre de 2009, 12:46:02 pm »
^ indica que la expresion debe estar al comienzo de la cadena.

Si usamos "[a-z]+" validaria ab56jd y 56jd

Pero al usar "^[a-z]+" validaria ab56jd pero no 56jd, ya que esta expresion dice que al menos el primer caracter debe ser una letra

Desconectado NDSi

  • PHPero Avanzado
  • ****
  • Mensajes: 410
  • Karma: 8
  • Sexo: Masculino
    • Ver Perfil
Re:[!] Expresiones Regulares en PHP.
« Respuesta #8 en: 07 de Diciembre de 2009, 20:47:52 pm »
entonces si pongo ^1 el numero 1 debe estar al principio?

es algo asi?

if ($_POST['usuario']^[a-z]) {
echo "tu usuario tiene una letra al comienzo" }


Desconectado Focux

  • PHPero Master
  • ******
  • Mensajes: 1.010
  • Karma: 22
    • Ver Perfil
Re:[!] Expresiones Regulares en PHP.
« Respuesta #9 en: 07 de Diciembre de 2009, 20:53:30 pm »
No, las expresiones regulares solo funcionan con funciones regulares como, eregi(),ereg(),eregi_replace(),preg_match entre otras.
Mixtiqueros.net

<?PHP
define
(_miNombre, &#39;Focux&#39;);
if(_miNombre == &#39;Focux&#39;): printf(&#39;%s es un programador avanzado&#39;, _miNombre); else: printf(&#39;Tu no eres %s&#39;, _miNombre); endif;
?>

Desconectado NDSi

  • PHPero Avanzado
  • ****
  • Mensajes: 410
  • Karma: 8
  • Sexo: Masculino
    • Ver Perfil
Re:[!] Expresiones Regulares en PHP.
« Respuesta #10 en: 07 de Diciembre de 2009, 20:59:58 pm »
No, las expresiones regulares solo funcionan con funciones regulares como, eregi(),ereg(),eregi_replace(),preg_match entre otras.

Ah muchas gracias, ¿con str_split()?

Desconectado Focux

  • PHPero Master
  • ******
  • Mensajes: 1.010
  • Karma: 22
    • Ver Perfil
Re:[!] Expresiones Regulares en PHP.
« Respuesta #11 en: 07 de Diciembre de 2009, 21:09:53 pm »
Ah muchas gracias, ¿con str_split()?
No, str_split no es una función regular. Te recomiendo buscar a ver cuales son las funciones regulares.
Mixtiqueros.net

<?PHP
define
(_miNombre, &#39;Focux&#39;);
if(_miNombre == &#39;Focux&#39;): printf(&#39;%s es un programador avanzado&#39;, _miNombre); else: printf(&#39;Tu no eres %s&#39;, _miNombre); endif;
?>