【问题标题】:Keeping only letters and digits in a string在字符串中只保留字母和数字
【发布时间】:2020-09-15 14:02:49
【问题描述】:

我正在 SPSS 中重新编写一些开放式调查回复,我只想保留常用字符 a-z 和 1-9

我已经完成了 rtrim 和 ltrim ,这对大多数人都有效,但有些字符串有剩余的尾随空格,我假设它们实际上不是空格而是隐藏字符。 我还删除了诸如“?”之类的标点符号。但我想一定有一种比每一个都更直接的方法。

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

【问题讨论】:

  • this link 有帮助吗?本质上使用 SPSS 的 PIB 格式来循环和替换不需要的字符。

标签: string spss recode


【解决方案1】:

以下语法将创建一个新的干净字段,并仅将原始字段中的数字和字母(大写或小写)复制到其中。
请注意,我使用 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, val, 1)).
end repeat.
exe.

查看@user45392 建议的链接以了解其工作原理/原因。 另请参阅this list,了解可以添加到循环中的其他值。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-03-16
    • 1970-01-01
    • 2012-04-09
    • 1970-01-01
    • 2017-09-03
    • 2019-05-26
    • 2023-03-16
    • 1970-01-01
    相关资源
    最近更新 更多