5 Expresiones regulares que debes saber

julio 24, 2007 at 12:34 pm 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 VideosTe VerdeVideos 3GP3GPsomos tu y yo

Entry filed under: PHP, Programación, Recursos.

80 tutoriales photoshop de efectos de texto RegExp Coach: verifica y corrije tus expresiones regulares.

2 comentarios Add your own

Deja un comentario

Trackback this post  |  Subscribe to the comments via RSS Feed