2013-05-03 65 views
0

我有以下SAS代碼檢查模式並標記任何錯誤。sas與方括號評估的模式匹配

我確定它檢查field1中的模式,但我不知道如何評估兩個方括號[]。

我需要檢查field1中的無效值。

SAS代碼:

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

回答

1

這個正則表達式將檢查尋找有效-SAS名稱。具體來說,它必須在結束前($)以字母([a-zA-Z])後跟0或更多(*)字母,數字和/或下劃線([a-zA-Z0-9_])開頭(^)。

更好的SAS名稱檢查將沿此線的東西:

  • Libnames:^[a-zA-Z_][a-zA-Z0-9_]{0,7}$
  • 數據集&變量名:^[a-zA-Z_][a-zA-Z0-9_]{0,31}$

注意這些允許的名字開始與下劃線,最大長度爲8和32個字符。

Here是SAS語言中名稱的頁面。