Regex 如何删除单个单词/变量中的特殊字符

Regex 如何删除单个单词/变量中的特殊字符,regex,perl,Regex,Perl,预期的结果是文件,但它不起作用。您就快到了,只需使用\W而不是\W my $var= "File/"; $var=~ /\w/; print "$var"; 输出是文件您就快到了,只需使用\W而不是\W my $var= "File/"; $var=~ /\w/; print "$var"; 输出为文件您使用了错误的运算符。匹配运算符(m/../或使用它时,/…/)用于匹配文本。它告诉您字符串是否与正则表达式匹配。它根本不会更改字符串 您需要的是替换运算符(s/../…/)。用新的内容替换匹

预期的结果是文件,但它不起作用。

您就快到了,只需使用
\W
而不是
\W

my $var= "File/";
$var=~ /\w/;
print "$var";

输出是文件

您就快到了,只需使用
\W
而不是
\W

my $var= "File/";
$var=~ /\w/;
print "$var";

输出为文件

您使用了错误的运算符。匹配运算符(
m/../
或使用它时,
/…/
)用于匹配文本。它告诉您字符串是否与正则表达式匹配。它根本不会更改字符串

您需要的是替换运算符(
s/../…/
)。用新的内容替换匹配的文本。在本例中,您希望将匹配字符串替换为空字符串

my $var= "File/";

$var =~ s/\W+//g;

print "$var";
但这仍然不正确,因为
\w
匹配任何单词字符(字母数字和下划线)。您需要的是
\W
,它匹配任何非单词字符

my $var= "File/";
$var =~ s/\w//; # // is an empty replacement string
print "$var";

您使用了错误的运算符。匹配运算符(
m/../
或使用它时,
/…/
)用于匹配文本。它告诉您字符串是否与正则表达式匹配。它根本不会更改字符串

您需要的是替换运算符(
s/../…/
)。用新的内容替换匹配的文本。在本例中,您希望将匹配字符串替换为空字符串

my $var= "File/";

$var =~ s/\W+//g;

print "$var";
但这仍然不正确,因为
\w
匹配任何单词字符(字母数字和下划线)。您需要的是
\W
,它匹配任何非单词字符

my $var= "File/";
$var =~ s/\w//; # // is an empty replacement string
print "$var";

代码的输出是什么?输出是一个空字符串。@Joey,看看当人们回答问题时输出不是空字符串。这是字符串“File/”。代码的输出是什么?输出是一个空字符串。@Joey,看看当人们回答问题时,输出不是空字符串。它是字符串“File/”。您还将
/…/
替换为
s/../…/
。这是一个相当重要的更改。您还以
s/../../
悄悄地替换了
/../
。这是一个相当重要的变化。@simbabque:谢谢。对不起,我不能去。LPW见?是的,当然@辛巴布:谢谢。对不起,我不能去。LPW见?是的,当然!