自定義語言的乙個好處就是可以隨時新增自己喜歡的語法,今天就給自己的語法加了個類似模式匹配的語法。
(*(
[$a, $b, $c]
[1,
1,
'y':
'yes!
']
[ 1,
1,
'n':
'no!']
[2, ?, ? :
'something wrong!
']
[?, ?, ? :
'op...
']
)*)
第一行,代表開始這一串語法
第二行,分別取a,b,c三個變數的值
第三行,如果三個變數的值為1,1,'y',則返回'yes'
第四行,語義同上
第五行,如果第乙個變數為2,另外兩個變數的值任意,則返回'something wrong!'
第六行,如果之前的條件均不滿足,則返回'op...'
第七行,代表這串語法的結束
簡單的理解的話就是相當於:
if ($a==
1 and $b==
1 and $c==
'y')
return
'yes!
';
else
if ($a==
1 and $b==
1 and $c==
'n')
return
'no!
';
else
if ($a==
2)return
'something wrong!
';
else
return
'op...
';
新語法更加簡單明瞭,在排版良好的前提下也更容易看出語義
shell之匹配模式和擴充套件匹配模式
首先說一下什麼是匹配模式,然後再介紹擴充套件匹配模式。匹配模式這個概念就算不知道,但是也都會使用這個功能找到匹配的檔案。例如 ls ab 找到所有以ab開頭的檔案。這就是利用了 可以匹配任意字串,包括空串。匹配模式是man bash中的pattern matching,星號的含義在上面講了。用來匹配...
perl 模式匹配
一 簡介 模式指在字串中尋找的特定序列的字元,由反斜線包含 def 即模式def。其用法如結合函式split將字串用某模式分成多個單詞 array split line 二 匹配操作符 檢驗匹配是否成功 result var abc 若在該字串中找到了該模式,則返回非零值,即true,不匹配則返回0...
模式匹配之路
之前我的文章中,介紹了kmp,bm,ac,wm等幾個經典的模式匹配演算法,本文我將對常用的模式匹配演算法做一小結。模式匹配演算法的關係圖如下所示 這裡有幾個我的文章中暫時沒有涵蓋的演算法,這裡做一簡要說明。rabin karp演算法,這是乙個基於雜湊值的模式匹配演算法,根據雜湊演算法,將長度為m的模...