5 Expresiones regulares que debes saber
julio 24, 2007 at 12:34 pm Victor San Martin 2 comentarios
El uso de expresiones regulares es vital, sobre todo para realizar validaciones o parsear contenido de archivos o textos, mantener un control de estos o conocer como utilizarlos puede ser de gran ayuda, ya que las expresiones regulares no solo sirven para la programación tipo php, c, etc., también te sirve en javascript y otros lenguajes lado cliente. En I’m Mike, escribieron un articulo con 5 expresiones regulares que debes conocer, las cuales son:
- Verificar usuario escrito: Esto es bastante simple y vital para los sistemas de registro de usuario, con esta expresión regular obligamos al visitante a digitar un un username con solo caracteres alfanuméricos (letras y números), el guion bajo (_) y forzando a que este tenga una longitud mínima de 3 caracteres y un máximo de 16.
/^[a-zA-Z0-9_]{3,16}$/
- Contenido en etiquetas XHTML: Con esta expresión regular, seremos capaces de encontrar un tag y obtener el contenido de esta. Cambia «tag» por el que desees (strong, span, div, etc.).
{<tag[^>]*>(.*?)</tag>}
Y otra forma que es con parámetros.
{<tag[^>]*attributes*=s*(["'])value1[^>]*>(.*?)</tag>}
- Verificar direcciones de correo: La siguiente validaciones, es acorde a la especificación RFC 822, cabe mencionar que esta expresión fue realizada por Cal Henderson, programador de Flickr. Si quieres ver mas información sobre este código, verifica su articulo. A continuación se expresa como una función PHP.
function is_valid_email_address($email){ $qtext = '[^x0dx22x5cx80-xff]'; $dtext = '[^x0dx5b-x5dx80-xff]'; $atom = '[^x00-x20x22x28x29x2cx2ex3a-x3c'. 'x3ex40x5b-x5dx7f-xff]+'; $quoted_pair = 'x5c[x00-x7f]'; $domain_literal = "x5b($dtext|$quoted_pair)*x5d"; $quoted_string = "x22($qtext|$quoted_pair)*x22"; $domain_ref = $atom; $sub_domain = "($domain_ref|$domain_literal)"; $word = "($atom|$quoted_string)"; $domain = "$sub_domain(x2e$sub_domain)*"; $local_part = "$word(x2e$word)*"; $addr_spec = "$local_partx40$domain"; return preg_match("!^$addr_spec$!", $email) ? 1 : 0; }
- Verificar Dirección URL: Obviamente era de esperar uno para verificar que sea una dirección URL.
{ b # Match the leading part (proto://hostname, or just hostname) ( # http://, or https:// leading part (https?)://[-w]+(.w[-w]*)+ | # or, try to find a hostname with more specific sub-expression (?i: [a-z0-9] (?:[-a-z0-9]*[a-z0-9])? . )+ # sub domains # Now ending .com, etc. For these, require lowercase (?-i: comb | edub | bizb | govb | in(?:t|fo)b # .int or .info | milb | netb | orgb | [a-z][a-z].[a-z][a-z]b # two-letter country code ) ) # Allow an optional port number ( : d+ )? # The rest of the URL is optional, and begins with / ( / # The rest are heuristics for what seems to work well [^.!,?;"'<>()[]{}sx7F-xFF]* ( [.!,?]+ [^.!,?;”’<>()[]{}sx7F-xFF]+ )* )? }ix
Cabe mencionar, que esa expresión ha sido testeada y funciona en un 99,9% de los casos. Si deseas ver como funciona, aquí te expongo una función PHP con uso, cambiar la variable $url_regex por lo escrito anteriormente.
function auto_link( $text ) { $url_regex = ... return preg_replace( $url_regex, '<a href="$0"^gt;$0=</a>', $text ); }
Enlace: 5 Regular Expressions Every Web Programmer Should Know (vía sentidoweb.com)
.
Ver Videos – Te Verde – Videos 3GP – 3GP – somos tu y yo
Entry filed under: PHP, Programación, Recursos.
2 comentarios Add your own
Deja un comentario
Trackback this post | Subscribe to the comments via RSS Feed
1. RegExp Coach: verifica y corrije tus expresiones regulares. « Quest’s Blog | julio 24, 2007 a las 12:57 pm
[…] 24th, 2007 Acabo de comentar acerca de las 5 expresiones regulares que debes tener a la mano, y sin querer en navegando encontré RegExp en sintaxerror, un programa para verificar las […]
2. ichramm | abril 24, 2008 a las 10:34 am
para los que quieran saber mas…
http://bulma.net/body.phtml?nIdNoticia=736