我已經知道我可以打印所有的正則表達式匹配一氣呵成(雖然沒有分隔符)這樣的(解引用數組):分配一個變量相匹配的Perl的一個班輪
perl -e '$t="10 hello 25 moo 31 foo"; print ($t =~ /(\d+)/g) ; print "\n";'
# 102531
我M還知道我能得到正則表達式匹配,而命名的數組,然後分配一個單獨的比賽給一個變量:
perl -e '$t="10 hello 25 moo 31 foo"; @n=($t =~ /(\d+)/g); $o=$n[1]; print "$o\n";'
# 25
我也知道我可以做正則表達式,然後參考,比方說,$1
:
perl -e '$t="10 hello 25 moo 31 foo"; $t =~ /(\d+)/g ; $o=$1; print "$o\n";'
# 10
......雖然由於某些原因,$2
在這裏不起作用 - 爲什麼?
我想要做的是在一行/一行(不使用指定數組)的情況下,從正則表達式分配一個特定的匹配到變量。由於上述告訴我們的正則表達式匹配的結果是一個數組,我想是這樣的成語會工作(與非關聯數組使用?):
$o = @{ ($t =~ /(\d+)/g) }[1];
但遺憾的是它並不:
perl -e '$t="10 hello 25 moo 31 foo"; [email protected]{ ($t =~ /(\d+)/g) }[1]; print "$o\n";'
#
那麼,有沒有辦法在Perl中實現正則表達式匹配數組的單行分配?
非常感謝那個@ M42--不敢相信我有多接近找到它,卻錯過了它:')乾杯! – sdaau
@sdaau:不客氣。 – Toto