perl智慧型匹配

2021-06-22 07:49:59 字數 1763 閱讀 1373

1.perl中~~為智慧型匹配,它可以智慧型地根據符號兩側的運算元來確定操作。

如要判斷某個元素是否存在於陣列中,不使用智慧型匹配,程式像這樣:

my $x=2;

my @array=(1,2,3);

my $flag=0;

for (@array)

}if($flag == 1)

else

使用智慧型匹配,程式像這樣:

my $x=2;

my @array;

if(@array~~$x)

else

再如檢視雜湊表中是否存在某個鍵值

『hello』~~  結果為true

$a

$b type of match implied matching cod

*****=

*****

********************=

**********===

hash hash hash keys identical [

sort

keys%$a

]~~[

sort

keys%$b

] hash array hash slice existence grep

} @$b

hash regex hash key grep

grep

/$b/

,keys%$a

hash any hash entry existence exists

$a->

array array arrays are identical[*]

array regex array grep

grep

/$b/

, @$a

array num array contains number grep

$_==

$b, @$a

array any array contains string grep

$_eq

$b, @$a

any undef undefined !

defined

$a any regex pattern match $a

=~/$b/

code

()code

() results are equal $a

->()

eq$b

->()

any code

() ****** closure truth $b

->()

# ignoring $a

num numish[!] numeric equality $a

==$b

any str string equality $a

eq$b

any num numeric equality $a

==$b

any any string equality $a

eq$b

perl 模式匹配

一 簡介 模式指在字串中尋找的特定序列的字元,由反斜線包含 def 即模式def。其用法如結合函式split將字串用某模式分成多個單詞 array split line 二 匹配操作符 檢驗匹配是否成功 result var abc 若在該字串中找到了該模式,則返回非零值,即true,不匹配則返回0...

perl正則匹配

字元的種類是一定的,無非是空格,數字,大小寫字母,和perl中定義的元字元,還有本國語言。所以原則上任何格式的字元都能匹配。匹配工具 選擇符號,關鍵字,量詞,斷言,轉義字元 當出現多個字元組成的 非空格字元時候,例如123,45 3 s sdgg 則使用 0 9a za z 若加上 則只能匹配一行中...

Perl的模式匹配

perl基本的模式匹配有兩種 m pattern 只匹配 s pattern replacement 匹配並替換其中分隔符反斜槓 可以用任意特殊字元替換 但在m pattern 簡寫為 pattern 時不能這樣做,換種說法,即若分隔符是反斜槓 則m pattern 可簡寫為 pattern 模式匹...