我有以下SAS代码,用于检查模式并标记任何错误。
我确定它会检查field1中的模式,但我不确定如何评估两个方括号[]。
我需要检查field1中的无效值。
sas代码:
if prxmatch('/^[a-zA-Z][a-zA-Z0-9_]*$/', strip(&vfiel1)) = 0 then do;
put "Error is field1"
答案 0 :(得分:1)
此正则表达式将检查有效的SAS名称。具体来说,必须先用字母(^
)开头([a-zA-Z]
)后跟0或更多(*
)个字母,数字和/或下划线([a-zA-Z0-9_]
)结束($
)。
更好的SAS名称检查将是这样的:
^[a-zA-Z_][a-zA-Z0-9_]{0,7}$
^[a-zA-Z_][a-zA-Z0-9_]{0,31}$
请注意,这些允许名称以下划线开头,最大长度为8和32个字符。
Here是SAS语言中名称的页面。