从字符串中删除不需要的字符

时间:2014-06-23 12:22:56

标签: regex string perl

我有一个字符串作为输入 从字符串中删除以下不需要的字符的最佳方法是什么?

!@#$%^&*()_+-={}[]:";'<>?,./`~\|)

除了迭代字符串并按字符匹配之外,还有另一种方法吗?

2 个答案:

答案 0 :(得分:3)

指定要保留的字符会更安全。

在这种情况下,您似乎已经列出了要剥离的标准键盘上的每个标点字符。你没有指定的唯一的东西是字母,数字和空格。

因此,使用一个否定的字符类,它将过滤掉与您想要的字符不匹配的任何内容,以更清晰,更安全的方式实现相同的目标:

s/[^a-zA-Z0-9\s]+//g;

答案 1 :(得分:2)

$string =~ tr|!@#$%^&*()_+-={}[]:”;’<>?,./`~\\\|)||d;