PerlGtk.pl

  
Menu główne
use PerlMongers::Warszawa;
use PerlMongers::Krakow;
NG_gRadio
Perl Wyrażenia Regularne - Sezon 2 - Część 5
  przez wrares (57 odsłon)
Dziś dalej idziemy w stronę wyrażeń regularnych. Zaczniemy od typowego zadania. Posiadając tekst zapisany w książce zauważymy że jest podzielony na wyrazy. Pomiędzy wyrazami puste miejsca zwane spacją rozdzielają tekst, aby się nie zlewał w całość. Dlatego zbadamy granicę słowa. A więc zaczynamy
Cytat:

1) \b - dopasuje się tylko wtedy, gdy miejsce na którym występuje \b odpowiada granicy pomiędzy znakiem słowa (A-Z, a-z, 0-9, _) i znakiem niesłowa

2) \B - jest odwrotnością punktu 1



A więc krótki program

#!/usr/bin/perl

use strict;
use warnings;

my $slowo = "Najzabawniejsza zabawa, odbywa się w chacie wuja Toma";

    if ($slowo =~ /Najzab\bawniejsza/) {
        
        print "Jest granica słowa w pojedynczym wyrazie\n";    
            
    } else {
            
        print "Nie ma granicy słowa w pojedynczym wyrazie\n";
        
    }



\b sprawia że wyrażenie się nie dopasuje gdyż badanie tym znakiem jako granica słowa się nie dopasuje. Gdy zmienicie znak na \B wyrażenie zostanie dopasowane.
Stosując kwantyfikator ? powodujemy że litery we wzorcu stają się nieobowiązkowe. Poniżej podajemy prosty przykład
#!/usr/bin/perl

use strict;
use warnings;

my $slowo = "Najzabawniejsza zabawa, odbywa się w chacie wuja Toma";

    if ($slowo =~ /\bTomas?z?/) {
        
        print "Jest dopasownaie\n";    
            
    } else {
            
        print "Brak dopasowania\n";
        
    }



Gdy pominiemy znaki ?, wzorzec nie zostanie dopasowany, natomiast \b powoduje że dopasowanie rozpoczyna się poprawnie. A teraz wykorzystamy znak *.

#!/usr/bin/perl

use strict;
use warnings;

my $slowo = "Najzabawniejsza zabawa, odbywa się w chacie wuja Toma";

    if ($slowo =~ /\bTo*/) {
        
        print "Jest dopasownaie\n";    
            
    } else {
            
        print "Brak dopasowania\n";
        
    }



Zachłanność gwiazdki spowoduje że dopasuje Nam tyle znaków ile jest to tylko możliwe, aż do końca.

Kombinacja tych kilku znaków specjalnych dla wyrażeń regularnych, zapewnia efektywne działanie poszukiwania wzorca w tekście.
Powrót
Szukaj w PerlGtk.pl
The Perl Job site
Szukaj kodu :