字符串中仅保留字母和数字

问题描述

我正在SPSS中记录一些公开的调查答复,并且只想保留常用字符a-z和1-9

我已经完成了rtrim和ltrim的工作,大多数情况下都可以使用,但是有些字符串的尾部还有空格,我认为这些空格实际上不是空格,而是隐藏的字符。 我还删除标点符号,例如“?”但我想肯定有比通过每种方法更直接的方法

例如我需要 “考试!”或“考试!!-请吗?”
说“例子”

解决方法

以下语法将创建一个新的干净字段,并仅将原始字段中的数字和字母(大写或小写)复制到该字段。
请注意,我使用 15 作为新字段宽度和循环中的迭代次数-请将15更改为原始字段的实际宽度

do repeat val=1 to 15.
  compute #i = number(char.substr(OrigField,val,1),PIB).
  if range(#i,48,57) or 
     range(#i,65,90) or 
     range(#i,97,122)  
       CleanField=concat(rtrim(CleanField),char.substr(OrigField,1)).
end repeat.
exe.

请参阅@ user45392建议的链接,以了解其工作方式/原因。 另请参见this list,以获取您可以添加到循环中的其他值。