在变量$hobbit中,我存储了值“Emulex LPe16000”。
现在,我需要一个正则表达式来匹配“Emulex”之后的值的“LPe16000”部分。
请忽略任何语法错误,我是perl的新手。

$hobbit="Emulex LPe16000"
if ($hobbit = ~m/Emulex ^\w+$/)
    print "lol";

最佳答案

^表示断言字符串的开头。如果将其移到开头,则可以匹配Emulex,后跟一个空格,并利用\K忘记匹配的内容。

然后匹配1个以上的单词字符\w+并断言字符串$的结尾

^Emulex \K\w+$

Regex demo | Perl demo

如果要打印匹配项,您的代码可能如下所示:
my $hobbit="Emulex LPe16000";
if ($hobbit =~ m/^Emulex \K\w+$/) {
    print $&;
}

09-27 23:21