2013-05-03 3 views
0

У меня есть следующий код SAS, который проверяет шаблоны и флаги на любую ошибку.sas pattern matching с квадратными скобками оценка

Я уверен, что он проверяет шаблон в поле1, но я не уверен, как оцениваются два квадратных скобки [].

Мне нужно проверить недопустимые значения в поле1.

код 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}$
  • Dataset & имена переменных: ^[a-zA-Z_][a-zA-Z0-9_]{0,31}$

Примечание они позволяют имена начинаются с подчеркивание и максимальная длина 8 и 32 символов.

Here - это страница с именами на языке SAS.

Смежные вопросы