Perl:从字符串中删除非字母、非数字字符



我有一个Perl字符串,只允许包含字母A到Z(大写和小写),数字0到9以及"-"和"_"字符。我想从字符串中删除所有不匹配的字符,其余的保持不变。

所以"Hell@_World"会变成"Hell_World"。

您可以使用^(非)正则表达式进行替换。 虽然 Perl 提供了快捷方式,但您可以像这样更清楚地看到这些部分:

$string =~ s/[^[:alnum:]_-]//g;

其中[:alnum:]是字母和数字字符的字符类。 "-"在括号中排在最后,以避免将其混淆为一系列字符的一部分。

最新更新