0

パターンをチェックしてエラーにフラグを立てる次の SAS コードがあります。

field1 のパターンをチェックしていることは確かですが、2 つの角括弧 [] がどのように評価されるかはわかりません。

field1 の無効な値を確認する必要があります。

サスコード:

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 に答える