源字符串:
试图只提取语言名称.
我目前有这个代码可行
if($line =~ m!\s(.*)\(!)
{
print $1 . "\n" ;
}
Run Code Online (Sandbox Code Playgroud)
但我试图使用quotemeta函数来做它我似乎无法做到的.
my $regex = quotemeta( "\s(.*)\(" );
#Also tried as i suspect the \s is my problem.
my $regex = quotemeta( "\\s(.*)\(" );
if($line =~ m/$regex/)
{
print $1 . "\n" ;
}
Run Code Online (Sandbox Code Playgroud)
任何风格都比其他风格更受欢迎吗?
我不明白你想要用什么quotemeta.
如果你已经有了实际的正则表达式语言,那么你不想要引用它.
my $regex = qr/\s(.*)\(/;
if ($line =~ /$regex/) ...
Run Code Online (Sandbox Code Playgroud)
如果你想引用它(你想要完全匹配字符串\s(..*)\(),你不需要quotemeta明确,但这实际上是你现在正在做的.
my $str = '\s(.*)\(';
if ($line =~ /\Q$str\E/) ...
Run Code Online (Sandbox Code Playgroud)