2013-05-17 63 views
1

在M4語言中,有沒有一種方法可以將字符串參數與兩個值進行比較,如果這兩個值中的任何一個匹配,則執行X,執行其他Y?字符串比較和宏OR條件

例如,如果MACTEST宏的參數是'ABC'或'XYZ',則顯示'match',否則顯示'nomatch'...看起來像eval是用於比較數字參數而不是字符串..有什麼等價的字符串?

define(MACTEST, ifelse(eval($1==ABC)|eval($1==XYZ), 1, match, nomatch)') 

MACTEST(ABC) 

回答

1

兩種可能性(underquoted爲清楚起見):

define(MACTEST,`ifelse($1,ABC,match,$1,XYZ,match,no-match)')dnl 
define(MACTEST,`ifelse(regexp($1,ABC\|XYZ),-1,no-match,match)')dnl 
+0

感謝威廉...完美的作品! – user1500970