Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] Duda en expresiones regulares

Estas en el tema de Duda en expresiones regulares en el foro de PHP en Foros del Web. Hola amigos del foro, estos días estuve indagando más acerca del uso de expresiones regulares para validar datos antes de guardarlos en una BD. Mi ...
  #1 (permalink)  
Antiguo 31/10/2013, 21:05
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.480
Antigüedad: 9 años, 3 meses
Puntos: 952
Duda en expresiones regulares

Hola amigos del foro, estos días estuve indagando más acerca del uso de expresiones regulares para validar datos antes de guardarlos en una BD. Mi duda es con el uso del arroba @ en las expresiones regulares; hace poco encontré este algoritmo en la red:
Código PHP:
Ver original
  1. $search = array(
  2.         '@<script[^>]*?>.*?</script>@si',   // Strip out javascript
  3.         '@<[\/\!]*?[^<>]*?>@si',            // Strip out HTML tags
  4.         '@<style[^>]*?>.*?</style>@siU',    // Strip style tags properly
  5.         '@<![\s\S]*?--[ \t\n\r]*>@'         // Strip multi-line comments
  6.       );
Hasta ahora había visto que para delimitar el inicio y fin de un bloque de expresiones regulares, se usa el slash o barra inclinada /, sin embargo, en este algoritmo, noto que en su lugar colocan el arroba y por lo visto, funciona como delimitador.

Ante esto, me han surgido estas preguntas:
  • ¿El arroba realmente está cumpliendo el rol de delimitador?
  • ¿Qué diferencia hay entre usar una barra inclinada y un arroba?
  • Tengo entendido que la i se utiliza para comparar mayúsculas y minúsculas (Fuente), mientras que la s trata una cadena como una sola línea (Fuente), entonces ¿qué rol cumple la S? (Esta pregunta es por el caso de la exp. reg. que termina en @siU)

Gracias de antemano.
  #2 (permalink)  
Antiguo 31/10/2013, 21:06
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.480
Antigüedad: 9 años, 3 meses
Puntos: 952
Respuesta: Duda en expresiones regulares

Cita:
Iniciado por Alexis88 Ver Mensaje
Hola amigos del foro, estos días estuve indagando más acerca del uso de expresiones regulares para validar datos antes de guardarlos en una BD. Mi duda es con el uso del arroba @ en las expresiones regulares; hace poco encontré este algoritmo en la red:
Código PHP:
Ver original
  1. $search = array(
  2.         '@<script[^>]*?>.*?</script>@si',   // Strip out javascript
  3.         '@<[\/\!]*?[^<>]*?>@si',            // Strip out HTML tags
  4.         '@<style[^>]*?>.*?</style>@siU',    // Strip style tags properly
  5.         '@<![\s\S]*?--[ \t\n\r]*>@'         // Strip multi-line comments
  6.       );
Hasta ahora había visto que para delimitar el inicio y fin de un bloque de expresiones regulares, se usa el slash o barra inclinada /, sin embargo, en este algoritmo, noto que en su lugar colocan el arroba y por lo visto, funciona como delimitador.

Ante esto, expongo ante ustedes las siguientes preguntas:
  • ¿El arroba realmente está cumpliendo el rol de delimitador?
  • ¿Qué diferencia hay entre usar una barra inclinada y un arroba?
  • Tengo entendido que la i se utiliza para comparar mayúsculas y minúsculas (Fuente), mientras que la s trata una cadena como una sola línea (Fuente), entonces ¿qué rol cumple la S? (Esta pregunta es por el caso de la exp. reg. que termina en @siU)

Gracias de antemano.
  #3 (permalink)  
Antiguo 31/10/2013, 21:08
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.480
Antigüedad: 9 años, 3 meses
Puntos: 952
Respuesta: Duda en expresiones regulares

Disculpen por volver a colocar el contenido de esta publicación, quise editarlo pero le di al botón "Citar". Creo que debería poderse editar la información, en fin.
  #4 (permalink)  
Antiguo 31/10/2013, 21:31
Avatar de andresdzphp
Colaborador
 
Fecha de Ingreso: julio-2011
Ubicación: $this->Colombia;
Mensajes: 2.749
Antigüedad: 9 años, 7 meses
Puntos: 793
Respuesta: Duda en expresiones regulares

¿El arroba realmente está cumpliendo el rol de delimitador?

Si. Según el manual PHP:

Cita:
Un delimitador puede ser cualquier carácter no alfanumérico, que no sea una barra invertida, y que no sea un espacio en blanco.
¿Qué diferencia hay entre usar una barra inclinada y un arroba?

Cita:
La diferencia entre / y @ es que si usas estos en la expresión regular tendrás que escaparlos. Por ejemplo si vas a usar una expresión llena de slash conviene más usar de delimitador una arroba.
Fuente: http://www.php.net/manual/es/regexp....delimiters.php

Aquí encuentras la descripción de cada uno de los modificadores de patrón (i, s, S, u etc.):

http://www.php.net/manual/es/referen....modifiers.php
__________________
Si sabemos como leer e interpretar el manual será mucho más fácil aprender PHP. En lugar de confiar en ejemplos o copiar y pegar - PHP
  #5 (permalink)  
Antiguo 01/11/2013, 00:30
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.480
Antigüedad: 9 años, 3 meses
Puntos: 952
Respuesta: Duda en expresiones regulares

¡Gracias Andrés!

Etiquetas: expresiones, html, regulares
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 22:00.