对于包含括号的字符串,perl grep失败

时间:2015-10-12 23:11:24

标签: regex perl

我正在尝试从数组中查找某些字符串,对于包含括号的字符串值,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);

对于所有包含((即括号)的记录都失败。

有谁知道如何解决这个问题?

谢谢。

1 个答案:

答案 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