[Cascavel-pm] REGEXP com [^

Fernando fernandolouis em terra.com.br
Quarta Junho 24 12:04:44 PDT 2009


Pessoal, voltando ao post...

Não posso utilizar o "\w+" nessas expressões estendidas?

Por exemplo, se eu fizer assim, funciona:
(?<!palavra)

e assim não:
(?<!\w+)

[]s,
Fernando
  ----- Original Message ----- 
  From: Gilmar Santos Jr 
  To: Cascavel Perl Mongers 
  Sent: Thursday, June 18, 2009 4:11 PM
  Subject: Re: [Cascavel-pm] REGEXP com [^


  Eu sempre usei essas opções sem o x... ?<! é um "negative zero-width lookbehind", aí tem o ?< (positive zero-width lookbehind), ?= (positive zero-width lookahead) e ?! (negative zero-width lookahead). O "zero-width" quer dizer que vc não 'consome' (nem captura) os caracteres, como num match padrão.. muito útil :)

  []'s
  Gilmar


  2009/6/18 Fernando <fernandolouis em terra.com.br>

    Perfeito, funcionou! Obrigado!

    Isso é uma expressão constante estendida, certo?

    Para usá-lo não tenho que usar o modificador "x"?

    No livro "Perl - Guia Completo" fala sobre as expressões constantes estendidas, mas em nenhum momento fala dessa opção que você citou Gilmar.

    Achei que esse gui fosse realmente "completo".

    []s,
    Fernando
      ----- Original Message ----- 
      From: Gilmar Santos Jr 
      To: Cascavel Perl Mongers 
      Sent: Thursday, June 18, 2009 3:02 PM
      Subject: Re: [Cascavel-pm] REGEXP com [^


      Não testado:

      /(?<!certificado)\d+/

      http://perldoc.perl.org/perlreref.html

      []'s
      Gilmar


      2009/6/18 Fernando <fernandolouis em terra.com.br>

        Pessoal, não consigo achar a REGEXP que reconhece qual caracterer numérico desde que antes não tenha a palavra-exata "certificado"

        tentei:
        /[^(certificado)]\d+/

        só que isto também reconhece:
        identidade 17 (porque tem o caracter "e" e depois um número)

        utilizei os pararêntes achando que o Perl iria interpretar o "certificado" como uma palavra inteira.

        Mas dessa forma ele verifica se antes do número não tenha qualquer um dos seguintes caracteres: "c", "e", "r", "t", "i", "f", "i", "c", "a", "d" ou "o"

        Quero utilizar o "[^" para reconhecer qualquer coisa diferente de uma palavra-exata e não de determinados caracteres um-a-um.

        isso:
        /[^(certificado)]\d+/

        é a mesma coisa que:
        /[^odacifitrec]\d+/ # certificado escrito de trás pra frente

        o que eu quero é a palavra-exata:
        /certificado/

        e não:
        /c|e|r|t|i|f|i|c|a|d|o/


        só que com o "[^" para reconhecer tudo que for diferente dessa palavra-exata.

        Im clear? ;)

        []s,
        Fernando 
        _______________________________________________
        Cascavel-pm mailing list
        Cascavel-pm em pm.org
        http://mail.pm.org/mailman/listinfo/cascavel-pm





--------------------------------------------------------------------------


      _______________________________________________
      Cascavel-pm mailing list
      Cascavel-pm em pm.org
      http://mail.pm.org/mailman/listinfo/cascavel-pm

    _______________________________________________
    Cascavel-pm mailing list
    Cascavel-pm em pm.org
    http://mail.pm.org/mailman/listinfo/cascavel-pm





------------------------------------------------------------------------------


  _______________________________________________
  Cascavel-pm mailing list
  Cascavel-pm em pm.org
  http://mail.pm.org/mailman/listinfo/cascavel-pm
-------------- Próxima Parte ----------
Um anexo em HTML foi limpo...
URL: <http://mail.pm.org/pipermail/cascavel-pm/attachments/20090624/531177fc/attachment.html>


Mais detalhes sobre a lista de discussão Cascavel-pm