Мне показалось, что я достаточно хорошо понял Perl RE, но это меня озадачивает:
#!/usr/bin/perl
use strict;
use warnings;
my $test = "'some random string'";
if($test =~ /\'?(.*?)\'?/) {
print "Captured $1\n";
print "Matched $&";
}
else {
print "What?!!";
}
отпечатки
Захваченные
Подходит '
Похоже, что он совпадает с окончанием "один, и поэтому ничего не захватил.
Я бы ожидал, что он будет соответствовать целиком, или, если он полностью не жадный, вообще ничего (поскольку все, что есть, может совпадать).
Это промежуточное поведение сбивает меня с толку, кто-нибудь может объяснить, что происходит?