1

在 M4 语言中,有没有一种方法可以将字符串参数与两个值进行比较,如果这两个值中的任何一个匹配,则执行 X,执行其他 Y?

例如,如果 MACTEST 宏的参数是“ABC”或“XYZ”,则显示“匹配”,否则显示“不匹配”......看起来 eval 用于比较数字参数而不是字符串......有字符串等价的东西?

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

MACTEST(ABC)
4

1 回答 1

1

两种可能性(为清楚起见,被低估了):

define(MACTEST,`ifelse($1,ABC,match,$1,XYZ,match,no-match)')dnl
define(MACTEST,`ifelse(regexp($1,ABC\|XYZ),-1,no-match,match)')dnl
于 2013-05-17T11:56:18.297 回答