我有一个字符串作为输入 从字符串中删除以下不需要的字符的最佳方法是什么?
!@#$%^&*()_+-={}[]:";'<>?,./`~\|)
除了迭代字符串并按字符匹配之外,还有另一种方法吗?
答案 0 :(得分:3)
“指定要保留的字符会更安全。”
在这种情况下,您似乎已经列出了要剥离的标准键盘上的每个标点字符。你没有指定的唯一的东西是字母,数字和空格。
因此,使用一个否定的字符类,它将过滤掉与您想要的字符不匹配的任何内容,以更清晰,更安全的方式实现相同的目标:
s/[^a-zA-Z0-9\s]+//g;
答案 1 :(得分:2)
$string =~ tr|!@#$%^&*()_+-={}[]:”;’<>?,./`~\\\|)||d;