根据前缀从字符串中删除单词

时间:2015-03-04 13:52:14

标签: sql sas

我有一个变量“评论”,这只是用户的个人评论。它们是一些敏感的词,比如它们的用户名,我需要从字符串中删除它们。所有用户名都以相同的前3个字母开头,但则不同,所有用户名长度为8个字符。我试图想办法从字符串中删除所有用户名但没有运气。如果它们发生,它们会出现在每个字符串的不同位置。我的第一个想法是使用TRANSWRD(),但我不认为我可以使用带有通配符的SAS功能。有人知道解决方案吗?非常感谢您的时间!

1 个答案:

答案 0 :(得分:2)

我会为此使用PERL正则表达式,它们具有非常强大的搜索条件,可以满足您的需求。下面的示例仅从字符串中删除第3个和第4个单词,即仅删除具有确切标准的单词。

data test;
input comments $50.;
regexid = prxparse('s/abc\w{5}\b//'); /* search for 'abc' followed by any 5 characters, followed by a word boundary (i.e. a space) */
call prxchange(regexid,-1,comments); /* remove usernames */
datalines;
abc abc123 abc12345 abc98765 abc123456
;
run;