Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - kinos

#91
Hola Danther, he estao mirando el codigo y en validateEmail() yo quitaría lo de "validate country code" porque creo que se podría hacer directamente con la expresión regular.

En este sitio he visto también una expresión regular pero creo que es .net:

http://haacked.com/archive/2007/08/21/i-knew-how-to-validate-an-email-address-until-i.aspx

 string pattern = @"^(?!\.)(""([^""\r\\]|\\[""\r\\])*""|"+ @"([-a-z0-9!#$%&'*+/=?^_`{|}~]|(?<!\.)\.)*)(?<!\.)" + @"@[a-z0-9][\w\.-]*[a-z0-9]\.[a-z][a-z\.]*[a-z]$";


Código (java) [Seleccionar]

package expresionesregularesemail;
import java.util.regex.*;
import java.util.StringTokenizer;

public class Main {
public boolean validateEmail(String email){
   //Pattern p = Pattern.compile("[a-zA-Z0-9]+[.[a-zA-Z0-9_-]+]*@[a-zA-Z0-9_]+[.[a-zA-Z]+]+"); //original
   Pattern p = Pattern.compile("[a-zA-Z0-9]+[.[a-zA-Z0-9_-]+]*@[a-z0-9][\\w\\.-]*[a-z0-9]\\.[a-z][a-z\\.]*[a-z]$");

 
  //@"^(?!\.)(""([^""\r\\]|\\[""\r\\])*""|"+ @"([-a-z0-9!#$%&'*+/=?^_`{|}~]|(?<!\.)\.)*)(?<!\.)" + @"@[a-z0-9][\w\.-]*[a-z0-9]\.[a-z][a-z\.]*[a-z]$"
 
  // Match the given string with the pattern
  Matcher m = p.matcher(email);
  return m.matches();
}
   public static void main(String[] args) {
       Main miMain = new Main();
       System.out.println("*****************************validateEmail******************************************");
       System.out.println("email: "+"example@cs.uns.edu.ar "+miMain.validateEmail("example@cs.uns.edu.ar"));
       System.out.println("email: "+"name-surname@computer_name.net_name.com "+miMain.validateEmail("name-surname@computer_name.net_name.com"));
       System.out.println("email: "+"!u@hotm@ail.co "+miMain.validateEmail("!u@hotm@ail.co"));
       System.out.println("email: "+"u@hotm@ail.co "+miMain.validateEmail("u@hotm@ail.co"));
       System.out.println("email: "+"u@hotmail.co "+miMain.validateEmail("u@hotmail.co"));
       System.out.println("email: "+"u@hotmail.c "+miMain.validateEmail("u@hotmail.c"));
       System.out.println("email: "+"!u@hotmail.cc "+miMain.validateEmail("!u@hotmail.cc"));
       System.out.println("email: "+"uu@hotmail.cc "+miMain.validateEmail("uu@hotmail.cc"));
       System.out.println("email: "+"@hotmail.cc "+miMain.validateEmail("@hotmail.cc"));
       System.out.println("email: "+".u@hotmail.cc "+miMain.validateEmail(".u@hotmail.cc"));
       System.out.println("email: "+"u.u@hotmail.cc "+miMain.validateEmail("u.u@hotmail.cc"));
       System.out.println("email: "+"u u@hotmail.cc "+miMain.validateEmail("u u@hotmail.cc"));
       System.out.println("email: "+"u@h.cc "+miMain.validateEmail("5u@h.cc"));
       System.out.println("email: "+"5u@h.cc "+miMain.validateEmail("5u@h.cc"));
       System.out.println("email: "+"5.cc "+miMain.validateEmail("5.cc"));
       System.out.println("email: "+"5@h.cc "+miMain.validateEmail("5@h.cc"));
       System.out.println("email: "+"5@h.cc.d "+miMain.validateEmail("5@h.cc.d"));
       System.out.println("email: "+"5@h.cc.dd "+miMain.validateEmail("5@h.cc.dd"));
       System.out.println("email: "+"5@h.c.dd "+miMain.validateEmail("5@h.c.dd"));
       System.out.println("email: "+"avf-@h.c.dd "+miMain.validateEmail("avf-@h.c.dd"));
       System.out.println("email: "+"a-vf@h.c.dd "+miMain.validateEmail("a-vf@h.c.dd"));
       System.out.println("email: "+"avf@h.c.dd "+miMain.validateEmail("avf@h.c.dd"));
       System.out.println("email: "+"-avf@h.c.dd "+miMain.validateEmail("-avf@h.c.dd"));
       System.out.println("email: "+"_avf@h.c.dd "+miMain.validateEmail("_avf@h.c.dd"));
       System.out.println("email: "+"a-_-_.-_b--d__-@h.c.dd "+miMain.validateEmail("a-_-_.-_b--d__-@h.c.dd"));
       System.out.println("email: "+"a_._-@h.c.dd "+miMain.validateEmail("a_._-@h.c.dd"));
       System.out.println("email: "+"a_.-@h.c.dd "+miMain.validateEmail("a_.-@h.c.dd"));
       System.out.println("email: "+"a.-@h.c.dd "+miMain.validateEmail("a.-@h.c.dd"));

   }
}
#92
Cita de: juancho77 en  4 Agosto 2009, 07:38 AM
y si mi dirección esta en un subdominio? ej: example@cs.uns.edu.ar ? Creo que hay que revisar eso despues del arroba (digo creo, porque lo lei medio apurado).

Pues no la da por valida...  :(
#93
mmm... sip me colao, ahora lo cambio. ahms... que el método validateRightEmail no esta bién del todo, ese hay que mirarlo que se cuelan cadenas así "hotm".
#94
Hola Danther en la que has puesto me parece que faltaría el "." de la parte de la izquierda. Y lo que dices de los caracteres permitidos igual habría que revisarlo.
Esta expresión \\p{Punct} no se mu bien que significa.

Debci explico  :) :=> [a-zA-Z0-9]+[.[a-zA-Z0-9_-]+]*@[a-zA-Z0-9_]+[.[a-zA-Z]+]+

[a-zA-Z0-9]+ => valida las cadenas que contienen al menos un caracter de esos tres rangos es igual el orden de los caracteres y tal. El + quiere decir eso, que al menos tiene que haber un caracter, sino no la da por buena.

[a-zA-Z0-9_-]+ => lo mismo que el anterior pero esta cadena puede contener guión y guión bajo

[.[a-zA-Z0-9_-]+]* => el punto signf. cualquier carácter. El asterisco quiere decir que todo ese bloque es o no es... jeje esa es la cuestión. Quiero decir que o aparece o no.
Por ejemplo:

- si tienes sólo ".d" es valido
- si tienes sólo "." no es valido porque como hemos dicho el "+" significa que tiene que haber al menos un caracter.
- si tienes sólo "" es decir cadena vacia es valido

@ => luego va la arroba y lo siguiente mas de lo mismo.

Lo de Pattern es para establecer un patrón, y el compile para compilar la cadena respecto a dicho patrón. Bueno para que te hagas una idea que tampoco controlo el tema.

Alguna referencia:

http://www.programacion.com/java/articulo/expresionesreg/

http://java.sun.com/j2se/1.4.2/docs/api/java/util/regex/Pattern.html

Iré probando a ver que tal va, sino cambiamos la expresión.
#95
La expresión regular para validar un email entero es: (comento que puede que no sea del todo correcta)

"[a-zA-Z0-9]+[.[a-zA-Z0-9_-]+]*@[a-z0-9][\\w\\.-]*[a-z0-9]\\.[a-z][a-z\\.]*[a-z]$"

Esta puede tener algún fallo: "[a-zA-Z0-9]+[.[a-zA-Z0-9_-]+]*@[a-zA-Z0-9_]+[.[a-zA-Z]+]+"

También esta otra: [a-zA-Z0-9][a-zA-Z0-9_-]+[\\p{Punct}[a-zA-Z0-9_-]+]*@[a-zA-Z0-9_]+[\\{Punct}[a-zA-Z]+]+


También hay dos metodos para validar por separado, uno para la parte izquierda del email y otro para la derecha derecha del email.


Código (java) [Seleccionar]


import java.util.regex.*;
import java.util.StringTokenizer;

public class Main {

   public boolean validateEmail(String email) {
       
       Pattern p = Pattern.compile("[a-zA-Z0-9]+[.[a-zA-Z0-9_-]+]*@[a-z0-9][\\w\\.-]*[a-z0-9]\\.[a-z][a-z\\.]*[a-z]$");//me gusta esta
       
       Matcher m = p.matcher(email);
       return m.matches();
   }

   public boolean validateLeftEmail(String emailLeft) {
       Pattern p = Pattern.compile("[a-zA-Z0-9]+[.[a-zA-Z0-9_-]+]*");
       Matcher m = p.matcher(emailLeft);
       return m.matches();
   }

   public boolean validateRightEmail(String emailRight) {
       Pattern p = Pattern.compile("[a-z0-9][\\w\\.-]*[a-z0-9]\\.[a-z][a-z\\.]*[a-z]$");
       Matcher m = p.matcher(emailRight);
       return m.matches();

   }

   public static void main(String[] args) {
       Main miMain = new Main();
       System.out.println("*****************************validateEmail******************************************");
       System.out.println("email: " + "example@cs.uns.edu.ar " + miMain.validateEmail("example@cs.uns.edu.ar"));
       System.out.println("email: " + "name-surname@computer_name.net_name.com " + miMain.validateEmail("name-surname@computer_name.net_name.com"));
       System.out.println("email: " + "name-sur#name@computer_name.net_name.com " + miMain.validateEmail("name-sur#name@computer_name.net_name.com"));
       System.out.println("email: " + "name-surname@comp#uter_name.net_name.com " + miMain.validateEmail("name-surname@comp#uter_name.net_name.com"));
       System.out.println("email: " + "name-surname@computer_name.net_na#me.com " + miMain.validateEmail("name-surname@computer_name.net_na#me.com"));
       System.out.println("email: " + "!u@hotm@ail.co " + miMain.validateEmail("!u@hotm@ail.co"));
       System.out.println("email: " + "u@hotm@ail.co " + miMain.validateEmail("u@hotm@ail.co"));
       System.out.println("email: " + "u@hotmail.co " + miMain.validateEmail("u@hotmail.co"));
       System.out.println("email: " + "u@hotmail.c " + miMain.validateEmail("u@hotmail.c"));
       System.out.println("email: " + "!u@hotmail.cc " + miMain.validateEmail("!u@hotmail.cc"));
       System.out.println("email: " + "uu@hotmail.cc " + miMain.validateEmail("uu@hotmail.cc"));
       System.out.println("email: " + "@hotmail.cc " + miMain.validateEmail("@hotmail.cc"));
       System.out.println("email: " + ".u@hotmail.cc " + miMain.validateEmail(".u@hotmail.cc"));
       System.out.println("email: " + "u.u@hotmail.cc " + miMain.validateEmail("u.u@hotmail.cc"));
       System.out.println("email: " + "u u@hotmail.cc " + miMain.validateEmail("u u@hotmail.cc"));
       System.out.println("email: " + "uu@h.cc " + miMain.validateEmail("uu@h.cc"));
       System.out.println("email: " + "5u@h.cc " + miMain.validateEmail("5u@h.cc"));
       System.out.println("email: " + "uu@hh.cc " + miMain.validateEmail("uu@hh.cc"));
       System.out.println("email: " + "5uu@hh.cc " + miMain.validateEmail("5uu@hh.cc"));
       System.out.println("email: " + "5uu@h.cc " + miMain.validateEmail("5uu@h.cc"));
       System.out.println("email: " + "5.cc " + miMain.validateEmail("5.cc"));
       System.out.println("email: " + "5@h.cc " + miMain.validateEmail("5@h.cc"));
       System.out.println("email: " + "5@h.cc.d " + miMain.validateEmail("5@h.cc.d"));
       System.out.println("email: " + "5@h.cc.dd " + miMain.validateEmail("5@h.cc.dd"));
       System.out.println("email: " + "5@h.c.dd " + miMain.validateEmail("5@h.c.dd"));
       System.out.println("email: " + "avf-@h.c.dd " + miMain.validateEmail("avf-@h.c.dd"));
       System.out.println("email: " + "a-vf@h.c.dd " + miMain.validateEmail("a-vf@h.c.dd"));
       System.out.println("email: " + "avf@h.c.dd " + miMain.validateEmail("avf@h.c.dd"));
       System.out.println("email: " + "-avf@h.c.dd " + miMain.validateEmail("-avf@h.c.dd"));
       System.out.println("email: " + "_avf@h.c.dd " + miMain.validateEmail("_avf@h.c.dd"));
       System.out.println("email: " + "a-_-_.-_b--d__-@h.c.dd " + miMain.validateEmail("a-_-_.-_b--d__-@h.c.dd"));
       System.out.println("email: " + "a_._-@h.c.dd " + miMain.validateEmail("a_._-@h.c.dd"));
       System.out.println("email: " + "a_.-@h.c.dd " + miMain.validateEmail("a_.-@h.c.dd"));
       System.out.println("email: " + "a.-@h.c.dd " + miMain.validateEmail("a.-@h.c.dd"));

       System.out.println("*****************************validateRightEmail******************************************");
       System.out.println("email: " + "cs.uns.edu.ar " + miMain.validateRightEmail("cs.uns.edu.ar"));
       System.out.println("email: " + "computer_name.net_name.com " + miMain.validateRightEmail("computer_name.net_name.com"));
       System.out.println("email: " + "comp#uter_name.net_name.com " + miMain.validateRightEmail("comp#uter_name.net_name.com"));
       System.out.println("email: " + "computer_name.net_na#me.com " + miMain.validateRightEmail("computer_name.net_na#me.com"));
       System.out.println("email: " + "hotm@ail.co " + miMain.validateRightEmail("hotm@ail.co"));
       System.out.println("email: " + "hotmail.co " + miMain.validateRightEmail("hotmail.co"));
       System.out.println("email: " + "hotmail.c " + miMain.validateRightEmail("hotmail.c"));
       System.out.println("email: " + "h.cc " + miMain.validateRightEmail("h.cc"));
       System.out.println("email: " + "hh.cc " + miMain.validateRightEmail("hh.cc"));
       System.out.println("email: " + "5.cc " + miMain.validateRightEmail("5.cc"));
       System.out.println("email: " + "h.cc.d " + miMain.validateRightEmail("h.cc.d"));
       System.out.println("email: " + "h.cc.dd " + miMain.validateRightEmail("h.cc.dd"));
       System.out.println("email: " + "h.c.dd " + miMain.validateRightEmail("h.c.dd"));
       System.out.println("email: " + "ail.co " + miMain.validateRightEmail("ail.co"));
       System.out.println("email: " + "hotm@ail.co " + miMain.validateRightEmail("hotm@ail.co"));
       System.out.println("email: " + "hotm " + miMain.validateRightEmail("hotm"));
       System.out.println("email: " + "hotmail.co " + miMain.validateRightEmail("hotmail.co"));
       System.out.println("email: " + "hotmail.c " + miMain.validateRightEmail("hotmail.c"));
       System.out.println("email: " + "hotmail.cc " + miMain.validateRightEmail("hotmail.cc"));
       System.out.println("email: " + "h.cc " + miMain.validateRightEmail("h.cc"));
       System.out.println("email: " + "5.cc " + miMain.validateRightEmail("5.cc"));
       System.out.println("email: " + "h.cc.d " + miMain.validateRightEmail("h.cc.d"));
       System.out.println("email: " + "h.cc.dd " + miMain.validateRightEmail("h.cc.dd"));
       System.out.println("email: " + "5h.c.dd " + miMain.validateRightEmail("5h.c.dd"));

       System.out.println("*****************************validateLeftEmail******************************************");
       System.out.println("email: " + "!u@hotm " + miMain.validateLeftEmail("!u"));
       System.out.println("email: " + "u " + miMain.validateLeftEmail("u"));
       System.out.println("email: " + "uu " + miMain.validateLeftEmail("uu"));
       System.out.println("email: " + "!u " + miMain.validateLeftEmail("!u"));
       System.out.println("email: " + ".u " + miMain.validateLeftEmail(".u"));
       System.out.println("email: " + "u.u " + miMain.validateLeftEmail("u.u"));
       System.out.println("email: " + "u u " + miMain.validateLeftEmail("u u"));
       System.out.println("email: " + "5u " + miMain.validateLeftEmail("5u"));
       System.out.println("email: " + "5.cc " + miMain.validateLeftEmail("5.cc"));
       System.out.println("email: " + "5 " + miMain.validateLeftEmail("5"));
       System.out.println("email: " + "avf- " + miMain.validateLeftEmail("avf-"));
       System.out.println("email: " + "a-vf " + miMain.validateLeftEmail("a-vf"));
       System.out.println("email: " + "avf " + miMain.validateLeftEmail("avf"));
       System.out.println("email: " + "-avf " + miMain.validateLeftEmail("-avf"));
       System.out.println("email: " + "_avf " + miMain.validateLeftEmail("_avf"));
       System.out.println("email: " + "a-_-_.-_b--d__- " + miMain.validateLeftEmail("a-_-_.-_b--d__-"));
       System.out.println("email: " + "a_._- " + miMain.validateLeftEmail("a_._-"));
       System.out.println("email: " + "a_.- " + miMain.validateLeftEmail("a_.-"));
       System.out.println("email: " + "a.- " + miMain.validateLeftEmail("a.-"));
   }
}

#96
Jeje... me expreso como un libro quemado jaja..

Es que lo que comentas es redundante y si solo lo tuviese que hacer una vez lo de guardar en el vector pos no pasaba na... pero se me va a cansar el cpu  ;D

Lo bueno sería encontrar un buffer que fuese como lo de los archivos de acceso aleatorio.
Que te pones en la posición que te da la gana a leer.

archivo.seek(long pos) //te pone en la posicion que quieras
#97
Java / Re: cifrar ejecutable .jar????
1 Agosto 2009, 02:07 AM
Hay que hacer varias cosas. Todavía no he probado el tema que comentas pero tengo un librito mágico por aki. "Hackers de JAVA y J2EE".
Pone muchas cosillas.

1. Apagar la información de depuración al compilar: (para dar menos facilidades a la ingenieria inversa)

   -compilar asi--> javac -g:none Test.java

2. Ofuscación:

   -Consigue un ofuscador pa poner feo el codigo... to mu negro...

3. Modificar, codificar o cifrar los archivos de clase:

   -Escribir una herramienta para cifrar, codificar o modificar un archivo de clase normal de forma que sea incomprensible para cualquier JVM o descompilador.
   -Extender la clase URLClassLoader y sobreescribir el método findClass de forma que encuentre y descifre la clase que se cifró en el primer paso.
   -Escribir un programa de prueba que cargue una clase en particular con el cargador de clases propio.

4. Los peligros de las cadenas empotradas:

   -Ojo con lo que guardas en los strings (si esta el programa ejecutandose, digamos que puedes ver lo que hay en la ram, en los archivos de clase o algo asi... una clave de accesoo..)

Y nose que más... esque si encriptases el jar supongo que no se podría ejecutar. Así que habría que hacer alguna cosa de estas.

Suerte
#98
A ver, la cuestión es... voy leyendo de la pagina caracter a caracter con char documento.read() entonces cuando encuentro una almoadilla por ejemplo "#" me gustaría leer hacia atrás pero con el bufferedreader no se puede.
Una forma de hacerlo es:

vas leyendo, encuentras el comienzo de una cadena y guardas la posición con documento.mark() sigues leyendo, si encuentras el caracter que busco comienzo a leer la cadena de nuevo con documento.reset() --> así vuelve al comienzo de la cadena y la puedo leer entera.
sino encuentra # que siga leyendo hasta que encuentre el comienzo de otra cadena y guarde la posición con documento.mark() y sigues leyendo y tal.

Lo que me parece un incordio el guardar la posición cada dos por tres. Con el tema de archivos aleatorios me parece que puedes leer posicionadote en la pos. que te de la gana. Pero andar con archivos me parece un derroche de recursos...
nose que hacer..  :huh:
#99
Hola, estoy cargando una pagina en un bufferedReader y leo caracter a caracter simplemente con:

char car = documento.read();// y me guarda el caracter

El problema es que quiero leer hacia atrás. ¿Cómo puedo hacer eso?