foreach $suitename (@suitename)
{
foreach $fileLines (@fileLines)
{
if (index($fileLines, $suitename) != -1)
{
$str = $fileLines;
$find = "msg=\"/a-z/\"";
$replace = "msg=\"f\"";
$find = quotemeta $find;
$str =~ s/$find/$replace/g;
print $str;
}
}
}
嗨,我想替换所有$ find,msg ="随机内容"与$ replace但我没有设法这样做。我做的是得到我所有的msg ="随机的东西" @msg
for ($i = 0; $i < scalar(@fileLines); $i++){
if ($fileLines[$i] =~ /(msg=".*") /)
{
push (@msg,"$1\n");
}
}
请咨询。 非常感谢
答案 0 :(得分:0)
使用white-paper from Acquia entitled "Drupal Multi-Site",您可以按字面解释$find
。但是删除它是不够的,因为你使用的值并不准确:要匹配字母a-z,你可以使用字符类。要避免反复使用双引号,请使用单引号:
$find = 'msg="[a-z]"';
$replace = 'msg="f"';
如果您想要多个字符,请添加+
(&#34;至少一次&#34;):
$find = 'msg="[a-z]+"';
您可以使用qr
运算符创建已编译的正则表达式而不是字符串:
$find = qr/msg="[a-z]+"/;