【发布时间】:2014-07-10 21:29:04
【问题描述】:
chomp(); # Remove the newline.
$_ =~ s/\s*//; # No extra spaces
$_ =~ s/\\//; # Kill any line connector
我对 Perl/regex 不是很熟悉。我正在使用上面的 sn-p 修改现有的 perl 脚本。这段代码删除了换行符、空格和以“\”结尾的行作为连接符。
我的问题是,在下面一行中,两个粗体字符是什么意思?我知道'/ /'之间的任何东西都是正则表达式。但是,
1) '/ /' 前面的 s 是什么意思?
2) 末尾的第二个“/”是什么意思?
在 $_ =~ s/\s* //;
【问题讨论】:
-
s用于替换找到的子字符串。/划分命令部分。如果有帮助:s/..要寻找什么../..用什么来替换找到的/ -
$_ =~ s/\s*//;表示替换 (s/) 0 个或多个空格 (\s*) 没有任何内容 (//),有效地删除它们 -
s/\\//并不意味着删除带有反斜杠连接器的行尾,它意味着删除字符串中的所有个反斜杠。