per / s /(\ W)/ \\ $ 1 / g有什么作用?

时间:2017-10-17 16:43:08

标签: regex perl

我查了一段代码,其中一个子程序以video filename为参数,然后打印它的持续时间。在这里,我只展示了片段。

sub videoInfo {
  my $file = shift;
  $file =~ s/(\W)/\\$1/g;
}

到目前为止,我理解它正在处理whitespaces,但我无法破解代码的含义,我的意思是$1以及它将如何工作?

1 个答案:

答案 0 :(得分:1)

它在非单词字符前放置反斜杠。 "untitled file"之类的内容会变为"untitled\ file"

与大多数正则表达式操作一样,$1表示使用(...)捕获的第一个内容,在这种情况下,(\W)表示单个非单词字符。

我认为这是quotemeta的不必要的自制版本。