在 SAS 中搜索带有字符和数字的模式

爆破枪

我正在检查数据质量并试图查看正确填充了多少行。该字段应包含一个字符串,其中一个字符后跟九个数字,并且类型为“字符”长度为 10。

前任。

  • A123456789
  • B123531490
  • C319861045

我曾尝试使用 PRXMATCH 函数,但我不确定我是否使用了正确的语法。我也试过使用 PROC SQL 和“Where not like "[AZ][0-9][0-9]”等等。我的感觉是这应该不难执行,有人有解决方案吗?

此致

汤姆

您可以构建一个 REGEX 来进行该测试。或者只是使用普通 SAS 函数构建测试。

data want ;
  set have ;
  flag1 = prxmatch('/^[A-Z][0-9]{9}$/',trim(name));
  test1 = 'A' <= name <= 'Z' ;
  test2 = not notdigit(trim(substr(name,2))) ;
  test3 = length(name)=10;
  flag2 = test1 and test2 and test3 ;
run;

结果:

Obs    name             flag1    test1    test2    test3    flag2

 1     A123456789590      0        1        1        0        0
 2     B123531490ABC      0        1        0        0        0
 3     C3198610           0        1        1        0        0
 4     A123456789         1        1        1        1        1
 5     B123531490         1        1        1        1        1
 6     C319861045         1        1        1        1        1

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章