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

 

 


Tema destacado: Como proteger una cartera - billetera de Bitcoin


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  Java
| | | |-+  [Solucionado]Duda con regex
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] 2 Ir Abajo Respuesta Imprimir
Autor Tema: [Solucionado]Duda con regex  (Leído 7,844 veces)
.:UND3R:.
Moderador Global
***
Desconectado Desconectado

Mensajes: 3.118


Ingeniería inversa / MASM


Ver Perfil WWW
[Solucionado]Duda con regex
« en: 25 Noviembre 2013, 21:18 pm »

Qué expresión regular debería filtrar una string para que me queden solo números y guiones de la siguiente forma:
00-123-456-789 o 00123456789

pero no esto:
00-123--457-789
-00-123-456-789-
-00123456789-
00-123-456-789-

Solo números y guiones, estos no deberían repetirse ni estar en los extremos

Código
  1.        String regex = ?????????
  2.        String test = "123asd--asd-12312-asd-11-1333-122";
  3.        System.out.println(test.replaceAll(regex, test));

Gracias


« Última modificación: 26 Noviembre 2013, 21:06 pm por .:UND3R:. » En línea


Solicitudes de crack, keygen, serial solo a través de mensajes privados (PM)
csp

Desconectado Desconectado

Mensajes: 35


Ver Perfil
Re: Duda con regex
« Respuesta #1 en: 25 Noviembre 2013, 22:47 pm »

La longitud de las cadenas es la misma que pusiste en los ejemplos, en esos formatos? O es solo a modo de explicación?


En línea

.:UND3R:.
Moderador Global
***
Desconectado Desconectado

Mensajes: 3.118


Ingeniería inversa / MASM


Ver Perfil WWW
Re: Duda con regex
« Respuesta #2 en: 25 Noviembre 2013, 22:52 pm »

entre guiones puede ir cualquier cantidad de dígitos, muchas gracias por tu interés
En línea


Solicitudes de crack, keygen, serial solo a través de mensajes privados (PM)
Shell Root
Moderador Global
***
Desconectado Desconectado

Mensajes: 3.724


<3


Ver Perfil WWW
Re: Duda con regex
« Respuesta #3 en: 25 Noviembre 2013, 23:06 pm »

y puede haber n cantidad de guiones?
En línea

Te vendería mi talento por poder dormir tranquilo.
.:UND3R:.
Moderador Global
***
Desconectado Desconectado

Mensajes: 3.118


Ingeniería inversa / MASM


Ver Perfil WWW
Re: Duda con regex
« Respuesta #4 en: 26 Noviembre 2013, 00:00 am »

efectivamente, intentaré detallar:
Sólo puede constar de números y guiones (-)
No pueden haber guiones al inicio y al final, ejemplo:
-10101-123123
191919-23123-
-34534-1233-
-123-
etc.

No se pueden repetir guiones:
1234--123

Debe tener n números entre medio de cada guión y n guiones

uff listo jeje
En línea


Solicitudes de crack, keygen, serial solo a través de mensajes privados (PM)
csp

Desconectado Desconectado

Mensajes: 35


Ver Perfil
Re: Duda con regex
« Respuesta #5 en: 26 Noviembre 2013, 00:18 am »

Fijate con esta a ver si hace lo que necesitás:

Código
  1. ^[\d]+(\-?\d)*
En línea

.:UND3R:.
Moderador Global
***
Desconectado Desconectado

Mensajes: 3.118


Ingeniería inversa / MASM


Ver Perfil WWW
Re: Duda con regex
« Respuesta #6 en: 26 Noviembre 2013, 00:41 am »

Me marca un error:

Código
  1. String test = "123asd--asd-12312-asd-11-1333-122";
  2.        System.out.println(test.replaceAll("^[\d]+(\-?\d)*", "vv"));

¿ A qué se puede deber esto?

Gracias nuevamente

PD: soy nuevo con esto de expresiones regulares y su uso (es un caso de necesidad puntual)

EDIT: Utilizo netbeans y me marca que la string presenta ilegal scape character
« Última modificación: 26 Noviembre 2013, 00:44 am por .:UND3R:. » En línea


Solicitudes de crack, keygen, serial solo a través de mensajes privados (PM)
csp

Desconectado Desconectado

Mensajes: 35


Ver Perfil
Re: Duda con regex
« Respuesta #7 en: 26 Noviembre 2013, 00:53 am »

La verdad no te sabría responder el porque del error (Recién estoy comenzando a aprender Java), pero intentá de la siguiente manera:

Código
  1. ^[\\d]+(\\-?\\d)*
En línea

.:UND3R:.
Moderador Global
***
Desconectado Desconectado

Mensajes: 3.118


Ingeniería inversa / MASM


Ver Perfil WWW
Re: Duda con regex
« Respuesta #8 en: 26 Noviembre 2013, 01:04 am »

Ahí ha funcionado, aunque no cumple con lo que me gustaría que hiciera, he aquí la entrada y luego la salida:

Entrada:

123asd--asd-12312-asd-11-1333-122

Salida:

asd--asd-12312-asd-11-1333-122

Solo elimino el primer caracter, debería quedar:

123-12312-11-1333-122

A ver que se puede hacer muchas gracias
En línea


Solicitudes de crack, keygen, serial solo a través de mensajes privados (PM)
Danyfirex


Desconectado Desconectado

Mensajes: 493


My Dear Mizuho


Ver Perfil
Re: Duda con regex
« Respuesta #9 en: 26 Noviembre 2013, 02:34 am »

se me ocurrió algo así:



Código
  1. test.replaceAll("([^\d]+){1,3}", "-")
  2.  

no lo probé.

saludos
En línea

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

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
RegEx
.NET (C#, VB.NET, ASP)
CH4ØZ 5 5,444 Último mensaje 16 Septiembre 2011, 00:21 am
por CH4ØZ
duda con regex
PHP
jhonatanAsm 8 4,327 Último mensaje 28 Abril 2012, 20:32 pm
por engel lex
duda de regex
.NET (C#, VB.NET, ASP)
spiritdead 3 2,672 Último mensaje 29 Diciembre 2012, 07:26 am
por spiritdead
[SOURCE] RegEx .NET
.NET (C#, VB.NET, ASP)
Eleкtro 3 4,137 Último mensaje 11 Septiembre 2013, 16:53 pm
por Eleкtro
Problema con IsMatch en Regex « 1 2 »
.NET (C#, VB.NET, ASP)
z3nth10n 18 11,328 Último mensaje 3 Agosto 2013, 15:00 pm
por z3nth10n
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines