Eclesiastes

Icon

Sobre o que é este blog? O.o

Analisando um comando INSERT com Regex no Perl

Criei a seguinte expressão regular para resgatar os campos e respectivos valores numa query INSERT.

http://ecl.zoone.com.br/etc/er_insert.txt 

Fiz essa ER para solcionar um caso no grupo, talvez seja útil para alguém.

Arquivado como:Perl, Regex

MySQL visual explain

Mais uma novidade de Baron “Xaprb” Schwartz! Que desenvolve utilitários em Perl e publica estudos sobre MySQL! Dessa vez criou um utilitário que formata a saida do comando EXPLAIN, facilita bastante a visualização!

http://www.xaprb.com/blog/2007/07/29/introducing-mysql-visual-explain/

Arquivado como:MySQL, Perl

Identificando número primo com Regex

O inventor parece ser Abigail, descobri na comunidade PerlMonks.

A ER é a seguinte: /^1?$|^(11+?)\1+$/

Para verificar se determinado número é primo, você tenta combinar o número que deseja em quantidade de 1.
Ou seja, se quero ver se 11 é primo, tento casar: 11111111111

Veja o teste:

re> /^1?$|^(11+?)\1+$/
data> 11111111111

No match

Quando não combina, quer dizer que ele é primo!

A explicação do padrão você encontra aqui!

Eu fiz o teste acima com pcretest, mas você pode usar a seguinte linha usando Perl:

perl -wle 'print "Prime" if (1 x shift) !~ /^1?$|^(11+?)\1+$/' [number]

Arquivado como:Perl, Regex

Braille e expressões regulares

Encontrei um texto curioso com ajuda do famigerado Google. Trata-se de contrações Braille e expressões regulares, o texto fala das contrações e demostra as mesmas por meio de expressões regulares usando Perl, mais precisamente a partir da versão 5.005, devido ao recurso chamado Lookaround.

A matéria pode ser visualizada na página: http://interglacial.com/~sburke/tpj/as_html/tpj15.html

Arquivado como:Perl, Regex

Expressões regulares possantes no Perl 5.10

Confira aqui as novidades para ERs no Perl 5.10! :D

Arquivado como:Perl, Regex

Expressões regulares no Perl 6

Encontrei um ótimo PDF sobre as mudança radicais que irão sofrer as expressões regulares no tão aguardo Perl 6. Foi elaborada aparentemente para o Encontro Técnico de Perl Mongers no Rio de Janeiro.

Confira aqui! ;)

Arquivado como:Perl, Regex

Benchmark em Perl

No Perl há o módulo Benchmark que nos permite executar códigos e compará-los em questão de processamento a outros, e na saída ainda temos um simples gráfico indicando a porcentagem de quão rápido um certo comando é em relação a cada participante do teste.

Veja um exemplo:

use Benchmark 'cmpthese';

my $str = "<a><b><c><d><a><b><c><d><a><b><c><d><a><b><c><d><a><b><c><d>";

cmpthese(-5, {

     a => sub { $str =~ /<[^>]*>/g },

     b => sub { $str =~ /<.*?>/g },

}, 'all');

Assim estamos comparando a execução das duas expressões regulares, cada um tendo um tempo mínimo de 5 segundos.

E temos a seguinte saída:

Benchmark: running a, b for at least 5 CPU seconds...
         a:  5 wallclock secs ( 5.38 usr -0.01 sys +  0.00 cusr  0.00 csys =  5.36 CPU) @ 544166.79/s (n=2916734)
         b:  6 wallclock secs ( 5.03 usr  0.00 sys +  0.00 cusr  0.00 csys =  5.03 CPU) @ 610819.36/s (n=3073643)
      Rate    a    b
a 544167/s   -- -11%
b 610819/s  12%   --

Ou seja, o código indicado pela letra b é 12% mais rápido que a, e b o inverso, obviamente. :)

Referência

Arquivado como:Perl

Categorias

del.icio.us