viernes, 26 de diciembre de 2008

Extraccion de direcciones de mail de texto en dos lineas

DISCLAIMER: la siguiente información se difunde solo con fines educativos, el blog de NilClass NO fomenta el spam



# El codigo consta de dos chainings,
# el primero abre el archivo y escribe en el
# (todo el codigo hasta el .write inclusive)

# en el primer chaining

# abre el archivo (File.new( "..." , "w") )
# invoca el metodo write

# en el segundo chaining

# abre el archivo, para lectura
# hace un read al archivo, para leer todo su contenido
# hace un split, usando como divisor la expresion regular
# la expresion regular especifica que matchee todo lo que
# no sea ni letra minuscula ni letra mayuscula ni numero
# ni esos caracteres que pueden tener las dir. de mail
# despues el chaining hace un select de los strings que contienen
# el caracter "@"
# y por ultimo, efectua un join uniendo todas las cadenas
# con el caracter de salto de linea (\n) de por medio

ary = File.new("rawtext.txt").read.split(/[^a-zA-Z0-9@._-]/)
File.new("mails-parsed.txt","w").write ary.select{ |x| x =~ /@/ }.join("n")

# nota: esta claro que pude haber hecho todo en una sola linea
# pero lo separe en dos para que quepa en la columna del post