Raku kurss / Regulārās izteiksmes un gramatikas / Regulārās izteiksmes / Virkņu saskaņošana

Sakritības objekts

Kad regulārā izteiksme sakrīt, gudrā sakritība atgriež sakritības objektu. Tas pats objekts automātiski tiek saglabāts arī speciālajā mainīgajā $/, ko dažreiz sauc par «sakritības mainīgo».

Sakritības objekts ir daudz vairāk nekā atbilde «jā» vai «nē». Kā virkne tas ir teksts, kas sakrita — vai nu ar metodi .Str, vai ar prefiksu ~, kas ir virknes pārveidošanas operators un dara tieši to pašu:

my $m = 'concatenate' ~~ /cat/;
say $m.Str; # cat
say ~$m;    # cat

Tas zina arī, kur virknē sakritība atrasta. Metode .from dod pozīciju, kur tā sākas, un .to — pozīciju tūlīt aiz tās beigām:

my $m = 'room 7 left' ~~ /\d/;
say $m.Str;  # 7
say $m.from; # 5
say $m.to;   # 6

Pozīcijas skaita no nulles, tāpēc cipars 7 atrodas indeksā 5.

Kad regulārā izteiksme nesakrīt, rezultāts vispār nav sakritības objekts — tā ir īpašā vērtība Nil. Piešķirot Nil skalāram, tas paliek nedefinēts:

my $m = 'abc' ~~ /z/;
say $m.defined; # False

Tāpēc pirms sakritušā teksta nolasīšanas vienmēr varat pārbaudīt .defined (vai vienkārši izmantot vērtību Būla kontekstā).

Prakse

Jūs gaida 1 viktorīna par šī temata saturu.

Kursa navigācija

Viktorīna — Viedā saskaņošana   |   Viktorīna — Saskaņošana


💪 Vai arī dodieties tieši uz šīs sadaļas vingrinājumiem.