这些perl正则表达式意味着什么?

时间:2014-07-10 21:29:04

标签: regex perl

            chomp();         # Remove the newline. 
            $_ =~ s/\s*//;   # No extra spaces     
            $_ =~ s/\\//;    # Kill any line connector

我对Perl / regex不太熟悉。我正在使用上面的代码片段修改现有的perl脚本。这段代码删除换行符,空格和以'\'结尾的行作为连接符。

我的问题是,在下面一行中,两个粗体字是什么意思?我知道'/ /'之间的任何内容都是正则表达式。但是,

1)'/ /'前面的 s 是什么意思?

2)最后的第二个'/'是什么意思?

在$ _ =〜 s / \ s * / /;

2 个答案:

答案 0 :(得分:4)

s表示"取代"。

$_ =~ s/SEARCH/REPLACE/;

因此,s/\s*//;表示查找每个空格并删除它们(或用空字符串替换它们)。

答案 1 :(得分:2)

“s”是替换函数,因此它说“替换”/“匹配在这里”/“与这里的内容”/

这里的“/”是参数的开始和结束分隔符:s / something_to_match / replacement。 '/'非常常用作分隔符,但perl几乎允许任何未在正则表达式中使用的字符作为分隔符。

请参阅:http://perldoc.perl.org/functions/s.html