我有这个正则表达式:
$f =~ s/[.\W_]//g;
Run Code Online (Sandbox Code Playgroud)
它只保留数字,字母和数字.在文件名(filename.ext)中.
但它不是.在文件扩展名之前保留(点).所以,如果我有:
my $f = "prn-the_rush show.jpg"
Run Code Online (Sandbox Code Playgroud)
结果 prntherushshowjpg 却.缺少了!
我想要prntherushshow.jpg结果.
我怎么做?
重写字符类以明确匹配您要保留的内容的补码:
$f =~ s/[^A-Za-z0-9.]//g;
Run Code Online (Sandbox Code Playgroud)
您也可以使用tr///(aka y///)更有效地完成同样的事情:
$f =~ tr/A-Za-z0-9.//cd;
Run Code Online (Sandbox Code Playgroud)