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

时间:2015-03-17 00:24:42

标签: regex perl

Perl的新手,有一个问题,我希望有人可以帮助我。

我有一个Perl字符串,只允许包含字母A到Z(大写和小写),数字0到9以及“ - ”和“_”字符。我想从字符串中删除所有不匹配的字符,其余部分保持不变。所以“Hell @ _World”将成为“Hell_World”。我知道这可能是一个简单,简单的方法,但我是Perl的新手,不知道如何处理这个问题。任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:0)

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

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

其中[:alnum:]是字母和数字字符的字符类。括号中的“-”位于括号的最后,以避免将其混淆为范围字符的一部分。