我正在尝试从数组中查找某些字符串,对于包含括号的字符串值,grep总是失败。
所以例如,无法在数组中找到匹配项,即使它存在:
$str='my name is Alpha(beta is old)';
@array=(
'my name is Alpha(beta is old)',
'my name is beta',
'my name is Apple(i am fruit)'
);
$match=grep(/$str/,@array);
对于所有包含((即括号)的记录都失败。
有谁知道如何解决这个问题?
谢谢。答案 0 :(得分:1)
您需要转义括号\( \)
或使用quotemeta()
$str= quotemeta('my name is Alpha(beta is old)');
@array=(
'my name is Alpha(beta is old)',
'my name is beta',
'my name is Apple(i am fruit)'
);
$match=grep(/$str/,@array);
print $match;
#1