Slide 1

Slide 1 text

Kapitel x beim Workshopthema Nr. 1 Regexes & Plugins

Slide 2

Slide 2 text

Laaaaaaaaaaaaaaaaaaangsam.....

Slide 3

Slide 3 text

http://swtch.com/~rsc/regexp/regexp1.html

Slide 4

Slide 4 text

an =~ a?nan n=3 => aaa =~ a?a?a?aaa

Slide 5

Slide 5 text

$ cat regex.pl !/usr/bin/perl use strict; use warnings; use Time::HiRes qw(time); use feature 'say'; my $count = $ARGV[0]; my $string = 'a' x $count; my $regex = ( 'a?' x $count ) . $string; my $time = time; $string =~ /$regex/; say "$count ($string)\n", time - $time;

Slide 6

Slide 6 text

$ plenv exec-all perl regex.pl 3 5.14.0 ========== 3 (aaa) 1.28746032714844e-05 5.18.0 ========== 3 (aaa) 1.28746032714844e-05 5.19.5 ========== 3 (aaa) 1.81198120117188e-05 $ plenv exec-all perl regex.pl 15 5.14.0 ========== 15 (aaaaaaaaaaaaaaa) 0.00228500366210938 5.18.0 ========== 15 (aaaaaaaaaaaaaaa) 0.00295805931091309 5.19.5 ========== 15 (aaaaaaaaaaaaaaa) 0.00253605842590332

Slide 7

Slide 7 text

$ plenv exec-all perl regex.pl 25 5.14.0 ========== 25 (aaaaaaaaaaaaaaaaaaaaaaaaa) 1.94273495674133 5.18.0 ========== 25 (aaaaaaaaaaaaaaaaaaaaaaaaa) 1.90621995925903 5.19.5 ========== 25 (aaaaaaaaaaaaaaaaaaaaaaaaa) 2.10874104499817 $ plenv exec-all perl regex.pl 29 5.14.0 ========== 29 (aaaaaaaaaaaaaaaaaaaaaaaaaaaaa) 31.006912946701 5.18.0 ========== 29 (aaaaaaaaaaaaaaaaaaaaaaaaaaaaa) 31.449235200882 5.19.5 ========== 29 (aaaaaaaaaaaaaaaaaaaaaaaaaaaaa) 35.083554983139

Slide 8

Slide 8 text

$ cat regex_re2.pl #!/usr/bin/perl use strict; use warnings; use Time::HiRes qw(time); use re::engine::RE2; use feature 'say'; my $count = $ARGV[0]; my $string = 'a' x $count; my $regex = ( 'a?' x $count ) . $string; my $time = time; $string =~ /$regex/; say "$count ($string)\n", time - $time;

Slide 9

Slide 9 text

$ plenv exec-all perl regex_re2.pl 25 5.14.0 ========== 25 (aaaaaaaaaaaaaaaaaaaaaaaaa) 0.000463008880615234 5.18.0 ========== 25 (aaaaaaaaaaaaaaaaaaaaaaaaa) 0.000398874282836914 5.19.5 ========== Can't locate re/engine/RE2.pm $ plenv exec-all perl regex_re2.pl 29 5.14.0 ========== 29 (aaaaaaaaaaaaaaaaaaaaaaaaaaaaa) 0.000368833541870117 5.18.0 ========== 29 (aaaaaaaaaaaaaaaaaaaaaaaaaaaaa) 0.000336885452270508 5.19.5 ========== Can't locate re/engine/RE2.pm