0

我有以下 SAS 代码来检查模式并标记任何错误。

我确定它会检查 field1 中的模式,但我不确定如何评估两个方括号 []。

我需要检查 field1 中的无效值。

sas代码:

if prxmatch('/^[a-zA-Z][a-zA-Z0-9_]*$/', strip(&vfiel1)) = 0 then do;
     put "Error is field1"
4

1 回答 1

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 个字符。

是关于 SAS 语言中的名称的页面。

于 2013-05-04T03:47:36.363 回答