Przejdź do zawartości

Perl/Operatory wyrażeń regularnych

Z Wikibooks, biblioteki wolnych podręczników.
Poprzedni rozdział: Wyrażenia regularne
Następny rozdział: Opis wyrażeń regularnych

Dopasowanie tekstu

[edytuj]
# Znaki // są używane do oznaczenia wyrażeń regularnych
$Text =~ /wzór do dopasowania/;
# Użycie m przed wyrażeniem pozwala zmienić znaki ograniczające
$Text =~ m|wzór do dopasowania|;
$Text =~ m{wzór do dopasowania};
$Text =~ m<wzór do dopasowania>;
$Text =~ m#wzór do dopasowania#;


Podział tekstu na części

[edytuj]
# Funkcja split pozwala podzielić tekst w tych miejscach, gdzie wyrażenie regularne pasuje
@TablicaCzesci = split( /,/, $Text);     # Dzieli przy przecinkach
@TablicaCzesci = split( /\s+/, $Text);   # Dzieli przy białych znakach
@TablicaCzesci = split( /,\s*/, $Text);  # Dzieli przy przecinku, za którym mogą być białe znaki
@TablicaCzesci = split( /\n/, $Text);    # Dzieli każdą linię tekstu osobno


Szukanie i zamiana

[edytuj]
# Funkcja s (od substitute) pozwala zamienić dopasowane fragmenty na inne.
$Text =~ s/wzór/nowa wartość/;
$Text =~ s|wzór|nowa wartość|;
$Text =~ s{wzór}{nowa wartość};
# Użycie g (od global) na końcu sprawia, że zamieniane są wszystkie wystąpienia wzorca, a nie tylko pierwsze
$Text =~ s/wzór/nowa wartość/g;
# Jak w pozostałych przypadkach, dodanie i na końcu sprawia, że wielkość liter nie ma znaczenia
Use Locale;
$Text =~ s/wzór/nowa wartość/i;


Wyciąganie wartości z tekstu

[edytuj]
# Ta funkcja zapisuje wyciągnięte wartości do zmiennych $1, $2, $3 ... 

$Text =~ m/Przed(.*)Po/;
# Jeśli $Text ma wartość "PrzedMiedzyPo", $1 będzie zawierać "Miedzy"
  
$Text =~ m/A(.*)B(.*)C/;
# Teraz jeśli $Text ma wartość "A1B2C", $1 zawiera "1" a $2 zawiera "2"
# Można też wydobyć bardziej przydatne wartości
$Text =~ m|([^=]*)=(\d*)|;
  
# W przypadku, gdy $Text zawiera "id=889", $1 przyjmie wartość "id", a $2 "889"
Poprzedni rozdział: Wyrażenia regularne
Następny rozdział: Opis wyrażeń regularnych