Я запутался с функцией регулярного выражения:Какова функция этого выражения кода?
/\[\]$/
Я попробовал короткий код PERL, чтобы понять это, но я до сих пор путают. Выходной код Else
my $addr2 = {[{'firstname' => 'Nikhil', 'lastname' => 'Hegde'}, {'firstname' => 'Nikhil2', 'lastname' => 'Hegde2'}]};
if($addr2 =~ /\[\]$/) {
print "If\n";
}
else {
print "Else\n";
}
Я думал, что /\[\]$/
бы указать, является ли значение является массивом или нет, но это, кажется, не так. Затем я подумал, что, возможно, значение должно заканчиваться массивом, учитывая, что в регулярном выражении есть $
. Итак, я попытался подставляя:
my $addr2 = {[{'firstname' => 'Nikhil', 'lastname' => 'Hegde'}, {'firstname' => 'Nikhil2', 'lastname' => 'Hegde2'}],[]};
, но это не работает. Выход кода остается Else
.
Может ли кто-нибудь помочь мне в понимании выражения /\[\]$/
? Какое регулярное соответствие оно делает? Благодаря!
Это соответствует буквенному '[]' (пару кронштейнов) в конце строки. Поэтому он соответствует строке '' hello [] "', но не для '' hello "'. Без экранирования скобки являются классом _character_. Кроме того, может потребоваться базовый факт: регулярное выражение работает с строкой, которая может находиться в переменной, но вы пробовали ее в структуре данных _complex. – zdim
вышло ... продолжить - ваш '$ addr2' печатает как' HASH (...) '- и эта строка не имеет' [] 'в конце. – zdim
@zdim Спасибо! Это объясняло много –