Eclesiastes

Ícone

Sobre o que é este blog? O.o

Visualizando combinação com pcretest

Para acompanhar o processo de combinação de uma expressão regular com a lib. PCRE, você pode usar o modificador C na expressão regular informada no programa pcretest. Desta forma, será habilitado o PCRE_AUTO_CALLOUT. Informações sobre Callout podem ser vistas aqui.

Veja um exemplo de utilização para comparar o trabalho entre o quantificador normal e o possessivo.

c:>pcretest
PCRE version 6.4 05-Sep-200
re> /d+foo/C
data> 123456789fox
--->123456789fox 
+0 ^                d+ 
+3 ^        ^       f 
+4 ^         ^      o 
+5 ^          ^     o 
+3 ^       ^        f 
+3 ^      ^         f 
+3 ^     ^          f 
+3 ^    ^           f 
+3 ^   ^            f 
+3 ^  ^             f 
+3 ^ ^              f 
+3 ^^               f 
+0  ^               d+ 
+3  ^       ^       f 
+4  ^        ^      o 
+5  ^         ^     o 
+3  ^      ^        f 
+3  ^     ^         f 
+3  ^    ^          f 
+3  ^   ^           f 
+3  ^  ^            f 
+3  ^ ^             f 
+3  ^^              f 
+0   ^              d+ 
+3   ^      ^       f 
+4   ^       ^      o 
+5   ^        ^     o 
+3   ^     ^        f 
+3   ^    ^         f 
+3   ^   ^          f 
+3   ^  ^           f 
+3   ^ ^            f 
+3   ^^             f 
+0    ^             d+ 
+3    ^     ^       f 
+4    ^      ^      o 
+5    ^       ^     o 
+3    ^    ^        f 
+3    ^   ^         f 
+3    ^  ^          f 
+3    ^ ^           f 
+3    ^^            f 
+0     ^            d+ 
+3     ^    ^       f 
+4     ^     ^      o 
+5     ^      ^     o 
+3     ^   ^        f 
+3     ^  ^         f 
+3     ^ ^          f 
+3     ^^           f 
+0      ^           d+ 
+3      ^   ^       f 
+4      ^    ^      o 
+5      ^     ^     o 
+3      ^  ^        f 
+3      ^ ^         f 
+3      ^^          f 
+0       ^          d+ 
+3       ^  ^       f 
+4       ^   ^      o 
+5       ^    ^     o 
+3       ^ ^        f 
+3       ^^         f 
+0        ^         d+ 
+3        ^ ^       f 
+4        ^  ^      o 
+5        ^   ^     o 
+3        ^^        f 
+0         ^        d+ 
+3         ^^       f 
+4         ^ ^      o 
+5         ^  ^     o 
+0          ^       d+ 
+0           ^      d+ 
No match

Já com o quantificador possessivo vemos que não é feito backtracking:

re> /d++foo/C
data> 123456789fox 
--->123456789fox 
+0 ^                d++ 
+4 ^        ^       f 
+5 ^         ^      o 
+6 ^          ^     o 
+0  ^               d++ 
+4  ^       ^       f 
+5  ^        ^      o 
+6  ^         ^     o 
+0   ^              d++ 
+4   ^      ^       f 
+5   ^       ^      o 
+6   ^        ^     o 
+0    ^             d++ 
+4    ^     ^       f 
+5    ^      ^      o 
+6    ^       ^     o 
+0     ^            d++ 
+4     ^    ^       f 
+5     ^     ^      o 
+6     ^      ^     o 
+0      ^           d++ 
+4      ^   ^       f 
+5      ^    ^      o 
+6      ^     ^     o 
+0       ^          d++ 
+4       ^  ^       f 
+5       ^   ^      o 
+6       ^    ^     o 
+0        ^         d++ 
+4        ^ ^       f 
+5        ^  ^      o 
+6        ^   ^     o 
+0         ^        d++ 
+4         ^^       f 
+5         ^ ^      o 
+6         ^  ^     o 
+0          ^       d++ 
+0           ^      d++ 
No match

O pcretest vem junto com os binários da lib. PCRE, que é encontrado na página http://www.pcre.org.

Arquivado em:PCRE, Regex

One Response

  1. nst disse:

    mto legal hein x]

Deixe uma resposta

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s

%d blogueiros gostam disto: