Ver Mensaje Individual
  #1 (permalink)  
Antiguo 31/10/2013, 21:05
Avatar de Alexis88
Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 12 años, 5 meses
Puntos: 977
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.