我的目标是将百分号传递给字符串。
当我跑步时,%put没有结果:
%let foo = %nrstr(bar%x%);
%put foo is &foo;
如果再次运行,我会收到错误,第一个是
警告:当前正在处理的引用字符串变得更多 超过262个字节。您可能有不平衡的引号。"
在“企业指南”中,括号匹配器未检测到右括号。
添加另一个近括号:
%let foo = %nrstr(bar%x%));
结果:
foo是bar%x)
%nrstr会将不平衡的括号传递给结果,所以这并不令人惊讶。这似乎暗示只有开括号和右括号的片段是平衡的。
答案 0 :(得分:3)
右括号前的百分比符号导致意外行为。
每SAS(R) 9.2 Macro Language: Reference:
括号前的百分号 - 例如,%(或%) 百分号(%%): 示例:%let x =%str(20 %%);
制作正确的代码:
%let foo = %nrstr(bar%x%%);
%put foo is &foo;
导致:
foo是bar%x%