我很困惑與正則表達式的功能:這段代碼表達式的功能是什麼?
/\[\]$/
我嘗試了很短的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 class_。另外,可能需要一個基本的事實:正則表達式處理一個字符串 - 可能在一個變量中,但是你在一個_complex數據結構上嘗試過它。 – zdim
超時...繼續 - 您的$ addr2打印爲HASH(...) - 並且該字符串的末尾沒有[]。 – zdim
@zdim謝謝!這解釋了很多 –