一般的,如引号,括号这两类符号需要“匹配”,这是自然语言的特点,被移植到了程序语言中。
匹配是有规则的。从例1可以看出,双引号从左往右匹配,之后的字符被视为多余的,不是程序预定的语法,因此报错。
有些时候确实需要不匹配的引号,如英文 I don't lie. 含有单个的引号,因此使用双引号包围它时,双引号可以从左向右匹配。若使用单引号,则会在 n 和 t 之间完成匹配,后面的字符便会造成麻烦。
在SAS程序中,有两种手段来将不匹配引号(或括号)保存到变量中。一是特殊字符屏蔽函数,二是转义字符。
例2中就是将连写两个双引号识别为转义字符,最终存储在宏变量a中的实际为连写两个双引号中的一个双引号。至于例1,建议使用第一种方法,即特殊字符屏蔽函数,如:
结果为: