如何使用SAS正则表达式清理单元格

如何使用SAS正则表达式清理单元格,sas,Sas,我有一张桌子 id Attribute Other 1 Written Jan 20 File: 78yt8fgkje .... 2 12/22/2004 File: 3Bsdffsdf85 .... 3 12/17/2004 File: 5Osdfdsf58384 .... 4 Some May File: 0w98ejcj .... 5 10/24/2001 File: 2Ddsfsd

我有一张桌子

id Attribute                          Other
1  Written Jan 20 File: 78yt8fgkje    ....
2  12/22/2004 File: 3Bsdffsdf85       ....
3  12/17/2004 File: 5Osdfdsf58384     ....
4  Some May File: 0w98ejcj            ....
5  10/24/2001 File: 2Ddsfsdfd1429     ....
          ....................
我需要删除
属性
变量中
文件:
单词之后的所有内容

我该怎么做


我在网上尝试了这个解决方案。它不起作用,我不明白什么是
32767

data newDataSet;
set oldDataSet;
regex1 = prxparse("/ File:.*? /");
call  prxchange(rx1, 32767, Attribute);
run;

PRX在这方面可能有点过头了

data want;
set have;
filepos = find(attribute,'File:');
if filepos>0 then attribute=substr(Attribute,1,filepos+5);
run;

Filepos+5是保留“File:”如您所说的“after”。如果您还想去掉“File:”,只需去掉+5即可。

PRX在这方面可能有些过头了

data want;
set have;
filepos = find(attribute,'File:');
if filepos>0 then attribute=substr(Attribute,1,filepos+5);
run;

Filepos+5是保留“File:”如您所说的“after”。如果还想去掉“File:”,只需去掉+5即可。

一个标准的RegExp(^.*?File:)--^表示文本的开头。*?是一个非贪婪的查找任何字符零次或多次,File:只是您想要的字符串的结尾。谢谢您的回复。我想去掉
文件……
部分,保留前面的内容。你能纠正我的编码吗。谢谢32767是进行更改的次数。它显示的是没有很好地阅读文档的人,因为-1只会匹配所有文档。标准RegExp(^.*?文件:)--^表示文本的开头。*?是一个非贪婪的查找任何字符零次或多次,File:只是您想要的字符串的结尾。谢谢您的回复。我想去掉
文件……
部分,保留前面的内容。你能纠正我的编码吗。谢谢32767是进行更改的次数。它显示的是没有很好地阅读文档的人,因为-1只会匹配所有文档。它运行但不会更改任何内容。。。它创建了一个新变量
filepos
,其中包含所有
0
valuesTry,我想我将参数交换为
find
。它运行,但不会更改任何内容。。。它创建了一个新变量
filepos
,其中包含所有
0
valuesTry,我想我把参数换成了
find