我有一个变量$ data,其中包含一堆数据;如果条件为真的变量中存在两个模式中的任何一个,我想要马赫,所以我写代码如
if ( $data =~ m/"Restore actions:"|"Setting Changes:"/)
我在else条件中放了一个print语句
不幸的是,即使这两个模式存在于变量中,它总是会转向其他。
下面是$ data变量包含的数据
sd: Save time: Thu ...
sd: ...
sd: Restore actions:
sd: ...
sd: Setting Changes:
sd: ...
答案 0 :(得分:3)
试试这样:
if ( $data =~ m/(Restore actions:|Setting Changes:)/)
答案 1 :(得分:3)
您添加的引号未出现在您要匹配的文字中。
if ( $data =~ /Restore actions:|Setting Changes:/ )
更精确
if ( $data =~ /^sd: (?:Restore actions|Setting Changes):/m )
会做的。