elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Usando Git para manipular el directorio de trabajo, el índice y commits (segunda parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Desarrollo Web
| | |-+  PHP (Moderador: #!drvy)
| | | |-+  expresion regular selección entre varias palabras
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: 1 [2] Ir Abajo Respuesta Imprimir
Autor Tema: expresion regular selección entre varias palabras  (Leído 6,355 veces)
Nakp
casi es
Ex-Staff
*
Desconectado Desconectado

Mensajes: 6.336

he vuelto :)


Ver Perfil WWW
Re: expresion regular selección entre varias palabras
« Respuesta #10 en: 21 Septiembre 2010, 09:00 am »

pues con esto:

Código
  1. [^\.\w](com|org|net)[^\.\w]

obtuve:

"com" google.com  com comasagua organizacion org netcat net enet .net


En línea

Ojo por ojo, y el mundo acabará ciego.
kinos

Desconectado Desconectado

Mensajes: 104



Ver Perfil
Re: expresion regular selección entre varias palabras
« Respuesta #11 en: 21 Septiembre 2010, 16:12 pm »

Hay dos cosas que no entiendo:

- qué significa esta expresión $/i
- por qué hay que poner la barra delante /^


En línea

Shell Root
Moderador Global
***
Desconectado Desconectado

Mensajes: 3.724


<3


Ver Perfil WWW
Re: expresion regular selección entre varias palabras
« Respuesta #12 en: 21 Septiembre 2010, 16:44 pm »

Código
  1. / /*Aquí ExpReg */ $/i
  2. ^ /* Inicio de palabra */
  3. $ /* Final de palabra */
« Última modificación: 21 Septiembre 2010, 16:46 pm por Shell Root » En línea

Te vendería mi talento por poder dormir tranquilo.
~ Yoya ~
Wiki

Desconectado Desconectado

Mensajes: 1.125



Ver Perfil
Re: expresion regular selección entre varias palabras
« Respuesta #13 en: 21 Septiembre 2010, 20:24 pm »

Código
  1. [^\.\w](com|org|net)[^\.\w]

Umm, recordando que con las expresiones regulares se debe tener muchos cuidado, esa expresion no filtra bien y no funcionaria correctamente, seguro porque no la haz probado y la pusiste de rápido xD. Me acordó a algunos vectores XSS xDDD.

Código
  1. [^\.\w](com|org|net)[^\.\w]
[^\.\w](com|org|net)[^\.\w]

Hay esta el problema, primero estas indicando que algo debe existir delante y de tras de (com|org|net) para poder cumplirse la expresión, osea si ingreso com, org,  net me la rechazara ya que para poder coincidir debe existir aunque sea una palabra delante y detrás, antes de entrar al paréntesis de captura...

Tambien no filtra bien las palabras debido a esto:
Código
  1. [^\.\w]
Estas indicando que al principio y al final debe existir una palabra que no contenga caracteres alfanuméricos o puntos...

Ejemplo:
Código:
<?php

$host = array('"êĻĥáĶéŕ•com"', 'com', '"com"','==org==');


foreach($host as $result)
{
   if(preg_match('/[^\.\w](com|org|net)[^\.\w]/',$result, $captura))
   {
      echo "Valida-> $result<br />";
   }else{
      echo "No valida-> $result<br />";
         }      
}

?>

Salida:
Código:
Valida-> "êĻĥáĶéŕ•com"
No valida-> com
Valida-> "com"
Valida-> ==org==



i es para que no distinga entre mayúscula y minúscula(Case sensitive)
En línea

Mi madre me dijo que estoy destinado a ser pobre toda la vida.
Engineering is the art of balancing the benefits and drawbacks of any approach.
Páginas: 1 [2] Ir Arriba Respuesta Imprimir 

Ir a:  

WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines