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

 

 


Tema destacado: Recuerda que debes registrarte en el foro para poder participar (preguntar y responder)


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  Ejercicios
| | | |-+  Retos de Expresiones Regulares
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: 1 [2] 3 Ir Abajo Respuesta Imprimir
Autor Tema: Retos de Expresiones Regulares  (Leído 21,008 veces)
~ Yoya ~
Wiki

Desconectado Desconectado

Mensajes: 1.125



Ver Perfil
Re: Retos de Expresiones Regulares
« Respuesta #10 en: 30 Octubre 2010, 20:22 pm »

Haber quien plantea un nuevo reto xD :-(


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.
Psyke1
Wiki

Desconectado Desconectado

Mensajes: 1.089



Ver Perfil WWW
Re: Retos de Expresiones Regulares
« Respuesta #11 en: 5 Noviembre 2010, 14:36 pm »

Haber quien plantea un nuevo reto xD :-(
No llores gatito :-* :laugh: :laugh: :laugh:

Reto #7
Sacar los números con decimales, puntos y negativos de un texto haciendo las validaciones necesareas.

Ej:
Citar
hola 3455345 sdfsdf 345435,3454 sdfsdf j ksjdh skdjfh 1.233.555,34534 asdasd as 344.34 qweqwe 23,324.324 qweqwe -234324324

Los validos serian :
Citar
3455345
345435,3454
1.233.555,34534
-234324324

A por ello! :D

DoEvents! :P


En línea

~ Yoya ~
Wiki

Desconectado Desconectado

Mensajes: 1.125



Ver Perfil
Re: Retos de Expresiones Regulares
« Respuesta #12 en: 5 Noviembre 2010, 15:20 pm »

Código
  1. <?php
  2.  
  3. $txt = "hola 3455345 sdfsdf 345435,3454 sdfsdf j ksjdh skdjfh 1.233.555,34534 asdasd as 344.34 qweqwe 23,324.324 qweqwe -234324324";
  4. preg_match_all("/([\d\-\,\.]+)/", $txt, $captura, PREG_SET_ORDER);
  5.   foreach ($captura as $salida):
  6.      echo $salida[1];
  7.      echo "<br>";
  8.   endforeach;
  9.  
  10. ?>

Código:
3455345
345435,3454
1.233.555,34534
344.34
23,324.324
-234324324


Reto #8

Eliminar los espacios en blancos que estén en medio, las condiciones son que a la derecha debe estar una letra y a la izquierda un numero.

Cadena:
Código:
hola 3455345 sdfsdf 345435,3454 sdfsdf j ksjdh skdjfh 1.233.555,34534 asdasd as 344.34 qweqwe 23,324.324 qweqwe -234324324
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.
Psyke1
Wiki

Desconectado Desconectado

Mensajes: 1.089



Ver Perfil WWW
Re: Retos de Expresiones Regulares
« Respuesta #13 en: 5 Noviembre 2010, 16:33 pm »

@Yoya
No vale esa RegExp para el Reto 7.
Solo puede captar números validos, fijate bien en el ejemlpo que puse ;)
Segun tu RegExp estos serian numeros validos (y no lo son):
Citar
344.34
23,324.324
El punto en este caso no se usara como decimal, sino para separar miles, asi:
Citar
76.234.345.456.788.999.000,345345345

Jeje, ahora no es tan facil  :-*

DoEvents! :P
En línea

Psyke1
Wiki

Desconectado Desconectado

Mensajes: 1.089



Ver Perfil WWW
Re: Retos de Expresiones Regulares
« Respuesta #14 en: 5 Noviembre 2010, 17:28 pm »

@Reto 7
Código:
(?![.,])-?(\d{1,3}\.|\d+)(\d{3}\.?\d{3})*(\,?\d+)?
Aqui dejo la mia, corregidme si veis algun fallo ;) , la he hecho corriendo que me tengo que marchar... :¬¬

DoEvents! :P
En línea

~ Yoya ~
Wiki

Desconectado Desconectado

Mensajes: 1.125



Ver Perfil
Re: Retos de Expresiones Regulares
« Respuesta #15 en: 5 Noviembre 2010, 19:01 pm »

Bueno aunque se vea fácil es muy complicado cuando intentas crear una expresión regular para validar o capturar cualquier texto, en este caso es un texto fijo y lo pude hacer.

Código
  1. #!/usr/bin/perl
  2. $text = 'hola 3455345 sdfsdf 345435,3454 sdfsdf j ksjdh skdjfh 1.233.555,34534 asdasd as 344.34 qweqwe 23,324.324 qweqwe -234324324';
  3.  
  4. while($text =~ m/(?:\s)([\d\.]+\,\d+(?=\s)|\d+\,\d+(?=\s)|\d+(?=\s)|\-\d+)/g)
  5. {
  6.   print $1, "\n";
  7. }

Salida:
Código:
3455345
345435,3454
1.233.555,34534
-234324324

La regexp que creaste no filtra correctamente, debes tratar de crear una regexp mas estricta de modo que si x parte no cumple con x condición, la regexp se pare y no devuelva ninguna referencia. Trata de hacer una Regexp que devuelva una sola Referencia mejor y no 3.


Se podría hacer fácilmente una regexp que valide cualquier texto, a mi se me ocurriría dividir primero el texto y luego validarlo pero es mejor hacerlo todo en una sola Regexp y que devuelva una sola referencia xD. Mas tarde miro como me hago para crear una sola regexp o que alguno muestre su regexp para validar cualquier texto xD.

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.
Psyke1
Wiki

Desconectado Desconectado

Mensajes: 1.089



Ver Perfil WWW
Re: Retos de Expresiones Regulares
« Respuesta #16 en: 6 Noviembre 2010, 00:46 am »

Ook Yoya, gracias por la explicación, me pongo con el Reto 8 mañana... :P

DoEvents! :P
En línea

~ Yoya ~
Wiki

Desconectado Desconectado

Mensajes: 1.125



Ver Perfil
Re: Retos de Expresiones Regulares
« Respuesta #17 en: 23 Marzo 2011, 02:26 am »

Buenas, estaba pensando que podemos hacer un benchmark de las Regexp para ver cual es el patron mas optimizado para cada problema.

Saludos.
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.
cyberserver

Desconectado Desconectado

Mensajes: 162


Lo que una mente crea, otra lo destruye


Ver Perfil WWW
Re: Retos de Expresiones Regulares
« Respuesta #18 en: 10 Marzo 2013, 18:25 pm »

Buenos días.

Estos trabajando con este texto:


Citar
FN Thomson Reuters Web of Knowledge
VR 1.0
PT S
AU O'Flynn, B
   Torre, G
   Fernstrom, M
   Winkler, T
   Lynch, A
   Barton, J
   Angove, P
   O'Mathuna, SC
AF O'Flynn, B.
   Torre, G.
   Fernstrom, M.
   Winkler, T.
   Lynch, A.
   Barton, J.
   Angove, P.
   O'Mathuna, S. C.
BE Leonhardt, S
   Falck, T
   Mahonen, P
TI Celeritas - A wearable sensor system for interactive digital dance
   theatre
SO 4th International Workshop on Wearable and Implantable Body Sensor
   Networks (BSN 2007)

Y estoy interesado en separar el texto de todas las etiqueta FN,VR........TI,SO por partes.

Para poder tener la parte de la etiqueta correspondiente por ejemplo
Etiqueta: SO
Contenido: 4th International Workshop on Wearable and Implantable Body Sensor
   Networks (BSN 2007)

Creen ustedes que seria buena idea usar expresiones regulares, y si fuera el caso cual me recomiendas, estaba pensando quiza en buscar las primeras letras de un renglón que fueran mallusculas.


Caray a quien engaño siempre me han costado mcuho trabajo las expresiones, alguien me puede ayudar a solucionar.
En línea






cyberserver

Desconectado Desconectado

Mensajes: 162


Lo que una mente crea, otra lo destruye


Ver Perfil WWW
Re: Retos de Expresiones Regulares
« Respuesta #19 en: 10 Marzo 2013, 18:51 pm »

Ya tengo para seleccionar solo las etiquetas:

Código:
/^([A-Z]{1}+[A-Z|0-9]{1}+\s)/gm

Pero cómo puedo hacer para seleccionar lo demas.
« Última modificación: 10 Marzo 2013, 18:59 pm por cyberserver » En línea






Páginas: 1 [2] 3 Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Expresiones regulares
Programación Visual Basic
chrominum 1 2,516 Último mensaje 30 Enero 2008, 23:09 pm
por LeandroA
Expresiones Regulares + Php wtf!
PHP
Shell Root 4 4,719 Último mensaje 29 Marzo 2010, 01:24 am
por Castg!
expresiones Regulares
.NET (C#, VB.NET, ASP)
Choclito 3 5,839 Último mensaje 1 Mayo 2010, 05:09 am
por raul338
Expresiones Regulares
Programación General
Psyke1 9 5,855 Último mensaje 1 Junio 2010, 02:12 am
por SeC
[RETOS] Expresiones Regulares « 1 2 3 4 »
Programación General
criskapunk 30 14,753 Último mensaje 28 Agosto 2011, 09:30 am
por raul338
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines