chomp(); # Remove the newline.
$_ =~ s/\s*//; # No extra spaces
$_ =~ s/\\//; # Kill any line connector
我对Perl / regex不太熟悉。我正在使用上面的代码片段修改现有的perl脚本。这段代码删除换行符,空格和以'\'结尾的行作为连接符。
我的问题是,在下面一行中,两个粗体字是什么意思?我知道'/ /'之间的任何内容都是正则表达式。但是,
1)'/ /'前面的 s 是什么意思?
2)最后的第二个'/'是什么意思?
在$ _ =〜 s / \ s * / /;
答案 0 :(得分:4)
s
表示"取代"。
$_ =~ s/SEARCH/REPLACE/;
因此,s/\s*//;
表示查找每个空格并删除它们(或用空字符串替换它们)。
答案 1 :(得分:2)
“s”是替换函数,因此它说“替换”/“匹配在这里”/“与这里的内容”/
这里的“/”是参数的开始和结束分隔符:s / something_to_match / replacement。 '/'非常常用作分隔符,但perl几乎允许任何未在正则表达式中使用的字符作为分隔符。