use strict;
my $str = 'Nykyisin tietojen erotteluun tekstimassojen seasta, ns. tekstinlouhintaan (engl. text mining) on olemassa tehokkaita työkaluja. Tärkeimmät näistä ovat niin sanottuihin säännöllisiin lausekkeisiin tai tuttavallisemmin regexeihin perustuvat haut, missä termi ”regex” viittaa menetelmän englanninkieliseen vastineeseen regular expressions. Regexien juuret tekstinlouhinnassa juontavat viime vuosisadan puolivälin kieppeille. Regex-haut muistuttavat yksinkertaisimmillaan tavanomaista tekstin hakutoimintoa (voit testata selaimesi tekstihakua painamalla näppäimistössäsi CTRL+F ja kirjoittamalla ”jotain”). Regexien avulla tekstin seasta voi kuitenkin pyydystää myös hyvin monimutkaisia tekstikuvioita. Esimerkiksi komento ”Esim.*lauseen” poimisi tästä blogista ainoastaan tämän lauseen ( DEMO ), kun taas haku ””.*?”” löytäisi kaiken blogissa hipsukoiden sisässä esiintyvän sisällön ( DEMO ).';
my $regex = qr/”.*?”/p;
if ( $str =~ /$regex/g ) {
print "Whole match is ${^MATCH} and its start/end positions can be obtained via \$-[0] and \$+[0]\n";
# print "Capture Group 1 is $1 and its start/end positions can be obtained via \$-[1] and \$+[1]\n";
# print "Capture Group 2 is $2 ... and so on\n";
}
# ${^POSTMATCH} and ${^PREMATCH} are also available with the use of '/p'
# Named capture groups can be called via $+{name}
Please keep in mind that these code samples are automatically generated and are not guaranteed to work. If you find any syntax errors, feel free to submit a bug report. For a full regex reference for Perl, please visit: http://perldoc.perl.org/perlre.html