パターンをチェックしてエラーにフラグを立てる次の SAS コードがあります。
field1 のパターンをチェックしていることは確かですが、2 つの角括弧 [] がどのように評価されるかはわかりません。
field1 の無効な値を確認する必要があります。
サスコード:
if prxmatch('/^[a-zA-Z][a-zA-Z0-9_]*$/', strip(&vfiel1)) = 0 then do;
put "Error is field1"
この正規表現は、有効に見える 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 言語の名前に関するページです。