$ cmd =〜s @ -fp [^] + @@; Perl是什么意思?

Kim*_*Kim 1 regex perl

$cmd =~ s@-fp [^ ]+@@;
Run Code Online (Sandbox Code Playgroud)

有没有人让我知道这个正则表达式在Perl中意味着什么?我通过谷歌搜索找不到上面的任何正则表达式......

Wil*_*ell 5

-fp将从命令中删除可选参数及其值.


这将获取由变量存储的字符串,$cmd并替换-fp [^ ]+与nothing 匹配的节.

此命令使用Perl替换(或其他正则表达式修饰符)可以具有任何分隔符的事实.这里通常写的s/.../.../是什么s@...@...@.这可能是混乱的根源.

=~是一个二进制绑定运算符,它将左参数作为字符串来执行右参数参数,在本例中为替换.

-fp [^ ]+

  1. -fp 从字面上看.
  2. [^ ]+ 匹配一个或多个不是空格的字符.