如何从str中删除斜杠?在perl上需要解决方案.我试过了
($phot) = $photos =~ s/\///g;
Run Code Online (Sandbox Code Playgroud)
但它不起作用
rua*_*akh 10
在Perl中,s///操作员修改您应用它的字符串; 所以,你应该写:
my $phot = $photos;
$phot =~ s/\///g;
Run Code Online (Sandbox Code Playgroud)
或者,更简洁地说:
(my $phot = $photos) =~ s/\///g;
Run Code Online (Sandbox Code Playgroud)
在Perl的最新版本中,有一个/r可以使用的标志,以获得更像您期望的行为:
my $phot = ($photos =~ s/\///gr);
Run Code Online (Sandbox Code Playgroud)
但你必须检查你的Perl版本是否有它.(您可以运行perl -v以查看您拥有的Perl版本.此功能是在Perl v5.14.0中引入的.)
编辑添加:正如amon在评论中指出的那样,并且Ωmega在他/她的回答中暗示,s///运算符允许除以外的分隔符/; 所以,例如,任何这些都可以工作:
(my $phot = $photos) =~ s{/}{}g;
(my $phot = $photos) =~ s#/##g;
(my $phot = $photos) =~ s'/''g; # note: prevents variable interpolation
(my $phot = $photos) =~ s-/--g;
Run Code Online (Sandbox Code Playgroud)
其中一个可能比写作更清楚s/\///g.(这取决于你.)
选择分隔符的这种自由对于所有类似引用的运算符都是正确的; 例如,"x"也可以写成qq{x}或qq/x/或qq-x-.有关更多信息,请参见手册页中的"引用和引用类操作符"perlop.
| 归档时间: |
|
| 查看次数: |
3222 次 |
| 最近记录: |